Wed, 30 Oct 2019 22:04:59 -0400
Use g_fchmod instead of fchmod to remove wrapper.
| 3776 | 1 | /* |
| 15884 | 2 | * purple |
|
5913
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5113
diff
changeset
|
3 | * |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5113
diff
changeset
|
4 | * File: libc_interface.h |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5113
diff
changeset
|
5 | * |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5113
diff
changeset
|
6 | * Copyright (C) 2002-2003, Herman Bloggs <hermanator12002@yahoo.com> |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5113
diff
changeset
|
7 | * |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5113
diff
changeset
|
8 | * This program is free software; you can redistribute it and/or modify |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5113
diff
changeset
|
9 | * it under the terms of the GNU General Public License as published by |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5113
diff
changeset
|
10 | * the Free Software Foundation; either version 2 of the License, or |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5113
diff
changeset
|
11 | * (at your option) any later version. |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5113
diff
changeset
|
12 | * |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5113
diff
changeset
|
13 | * This program is distributed in the hope that it will be useful, |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5113
diff
changeset
|
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5113
diff
changeset
|
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5113
diff
changeset
|
16 | * GNU General Public License for more details. |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5113
diff
changeset
|
17 | * |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5113
diff
changeset
|
18 | * You should have received a copy of the GNU General Public License |
|
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5113
diff
changeset
|
19 | * along with this program; if not, write to the Free Software |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
19387
diff
changeset
|
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
5913
4d016c00bb36
[gaim-migrate @ 6345]
Herman Bloggs <herman@bluedigits.com>
parents:
5113
diff
changeset
|
21 | * |
| 3776 | 22 | */ |
|
39659
e4dfb99b0cef
Fix libpurple header guards using reserved names.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39383
diff
changeset
|
23 | #ifndef PURPLE_WIN32_LIBC_INTERFACE_H |
|
e4dfb99b0cef
Fix libpurple header guards using reserved names.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39383
diff
changeset
|
24 | #define PURPLE_WIN32_LIBC_INTERFACE_H |
|
35892
02bf3200b9cb
cross-win32: make use of WIN32_LEAN_AND_MEAN define
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35867
diff
changeset
|
25 | |
|
02bf3200b9cb
cross-win32: make use of WIN32_LEAN_AND_MEAN define
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35867
diff
changeset
|
26 | #include <config.h> |
|
02bf3200b9cb
cross-win32: make use of WIN32_LEAN_AND_MEAN define
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35867
diff
changeset
|
27 | |
|
8244
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
7242
diff
changeset
|
28 | #include <winsock2.h> |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
7242
diff
changeset
|
29 | #include <ws2tcpip.h> |
|
4714
08b54a8f301f
[gaim-migrate @ 5025]
Herman Bloggs <herman@bluedigits.com>
parents:
4373
diff
changeset
|
30 | #include <io.h> |
| 3776 | 31 | #include <errno.h> |
| 32 | #include "libc_internal.h" | |
|
10589
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10214
diff
changeset
|
33 | #include <glib.h> |
|
35867
b6f09494adda
cross-win32: hide glib bug of mismatched g_stat and GStatBuf for win32 (not win64)
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35863
diff
changeset
|
34 | #include "glibcompat.h" |
| 3776 | 35 | |
|
39383
0f9d49617abc
Use G_BEGIN_DECLS and G_END_DECLS instead of raw extern "C"
Mike Ruprecht <cmaiku@gmail.com>
parents:
35893
diff
changeset
|
36 | G_BEGIN_DECLS |
|
22686
d41016d7812d
Add extern "C" wrappers to win32 headers. There is also a change here that I thought I committed earlier that should provide better error messages for winsock errors.
Daniel Atallah <datallah@pidgin.im>
parents:
20294
diff
changeset
|
37 | |
|
18553
a65fadc62b15
Fix some S_ISDIR calls to work with Visual Studio. --rlaager
Nick Hebner <hebnern@gmail.com>
parents:
15936
diff
changeset
|
38 | #ifdef _MSC_VER |
|
a65fadc62b15
Fix some S_ISDIR calls to work with Visual Studio. --rlaager
Nick Hebner <hebnern@gmail.com>
parents:
15936
diff
changeset
|
39 | #define S_IRUSR S_IREAD |
|
a65fadc62b15
Fix some S_ISDIR calls to work with Visual Studio. --rlaager
Nick Hebner <hebnern@gmail.com>
parents:
15936
diff
changeset
|
40 | #define S_IWUSR S_IWRITE |
|
a65fadc62b15
Fix some S_ISDIR calls to work with Visual Studio. --rlaager
Nick Hebner <hebnern@gmail.com>
parents:
15936
diff
changeset
|
41 | #define S_IXUSR S_IEXEC |
|
a65fadc62b15
Fix some S_ISDIR calls to work with Visual Studio. --rlaager
Nick Hebner <hebnern@gmail.com>
parents:
15936
diff
changeset
|
42 | |
|
a65fadc62b15
Fix some S_ISDIR calls to work with Visual Studio. --rlaager
Nick Hebner <hebnern@gmail.com>
parents:
15936
diff
changeset
|
43 | #define S_ISDIR(m) (((m)&S_IFDIR)==S_IFDIR) |
|
a65fadc62b15
Fix some S_ISDIR calls to work with Visual Studio. --rlaager
Nick Hebner <hebnern@gmail.com>
parents:
15936
diff
changeset
|
44 | |
|
a65fadc62b15
Fix some S_ISDIR calls to work with Visual Studio. --rlaager
Nick Hebner <hebnern@gmail.com>
parents:
15936
diff
changeset
|
45 | #define F_OK 0 |
|
a65fadc62b15
Fix some S_ISDIR calls to work with Visual Studio. --rlaager
Nick Hebner <hebnern@gmail.com>
parents:
15936
diff
changeset
|
46 | #endif |
|
a65fadc62b15
Fix some S_ISDIR calls to work with Visual Studio. --rlaager
Nick Hebner <hebnern@gmail.com>
parents:
15936
diff
changeset
|
47 | |
| 3776 | 48 | /* sys/socket.h */ |
|
22812
cf92ffc5949c
Patch from vladb to remove a C++ protected word ("namespace") from win32 libpurple code. Fixes #5471
Daniel Atallah <datallah@pidgin.im>
parents:
22686
diff
changeset
|
49 | #define socket( domain, style, protocol ) \ |
|
cf92ffc5949c
Patch from vladb to remove a C++ protected word ("namespace") from win32 libpurple code. Fixes #5471
Daniel Atallah <datallah@pidgin.im>
parents:
22686
diff
changeset
|
50 | wpurple_socket( domain, style, protocol ) |
| 3776 | 51 | |
| 52 | #define connect( socket, addr, length ) \ | |
| 15884 | 53 | wpurple_connect( socket, addr, length ) |
| 3776 | 54 | |
|
18554
c68c8e6e2c7a
Fix up some macros for Visual Studio. --rlaager
Nick Hebner <hebnern@gmail.com>
parents:
18553
diff
changeset
|
55 | #define getsockopt( socket, level, optname, optval, optlenptr ) \ |
|
c68c8e6e2c7a
Fix up some macros for Visual Studio. --rlaager
Nick Hebner <hebnern@gmail.com>
parents:
18553
diff
changeset
|
56 | wpurple_getsockopt( socket, level, optname, optval, optlenptr ) |
| 3776 | 57 | |
|
18554
c68c8e6e2c7a
Fix up some macros for Visual Studio. --rlaager
Nick Hebner <hebnern@gmail.com>
parents:
18553
diff
changeset
|
58 | #define setsockopt( socket, level, optname, optval, optlen ) \ |
|
c68c8e6e2c7a
Fix up some macros for Visual Studio. --rlaager
Nick Hebner <hebnern@gmail.com>
parents:
18553
diff
changeset
|
59 | wpurple_setsockopt( socket, level, optname, optval, optlen ) |
|
8244
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
7242
diff
changeset
|
60 | |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
7242
diff
changeset
|
61 | #define getsockname( socket, addr, lenptr ) \ |
| 15884 | 62 | wpurple_getsockname( socket, addr, lenptr ) |
|
8244
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
7242
diff
changeset
|
63 | |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
7242
diff
changeset
|
64 | #define bind( socket, addr, length ) \ |
| 15884 | 65 | wpurple_bind( socket, addr, length ) |
|
8244
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
7242
diff
changeset
|
66 | |
|
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
7242
diff
changeset
|
67 | #define listen( socket, n ) \ |
| 15884 | 68 | wpurple_listen( socket, n ) |
|
8244
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
7242
diff
changeset
|
69 | |
|
11431
60971f504319
[gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
70 | #define sendto(socket, buf, len, flags, to, tolen) \ |
| 15884 | 71 | wpurple_sendto(socket, buf, len, flags, to, tolen) |
|
11431
60971f504319
[gaim-migrate @ 13668]
Daniel Atallah <datallah@pidgin.im>
parents:
10601
diff
changeset
|
72 | |
|
15936
1a5a326484f3
move internal stuff to libc_internal.h to fix warnings
Daniel Atallah <datallah@pidgin.im>
parents:
15884
diff
changeset
|
73 | #define recv(fd, buf, len, flags) \ |
|
1a5a326484f3
move internal stuff to libc_internal.h to fix warnings
Daniel Atallah <datallah@pidgin.im>
parents:
15884
diff
changeset
|
74 | wpurple_recv(fd, buf, len, flags) |
|
1a5a326484f3
move internal stuff to libc_internal.h to fix warnings
Daniel Atallah <datallah@pidgin.im>
parents:
15884
diff
changeset
|
75 | |
|
1a5a326484f3
move internal stuff to libc_internal.h to fix warnings
Daniel Atallah <datallah@pidgin.im>
parents:
15884
diff
changeset
|
76 | #define send(socket, buf, buflen, flags) \ |
|
1a5a326484f3
move internal stuff to libc_internal.h to fix warnings
Daniel Atallah <datallah@pidgin.im>
parents:
15884
diff
changeset
|
77 | wpurple_send(socket, buf, buflen, flags) |
|
1a5a326484f3
move internal stuff to libc_internal.h to fix warnings
Daniel Atallah <datallah@pidgin.im>
parents:
15884
diff
changeset
|
78 | |
| 3776 | 79 | /* sys/ioctl.h */ |
| 80 | #define ioctl( fd, command, val ) \ | |
| 15884 | 81 | wpurple_ioctl( fd, command, val ) |
| 3776 | 82 | |
| 83 | /* fcntl.h */ | |
|
20239
ae122f419324
applied changes from 2762c6075c0dc52a96098c5478c5bf68cfd890a3
Luke Schierer <lschiere@pidgin.im>
parents:
19859
diff
changeset
|
84 | #define fcntl( fd, command, ... ) \ |
|
ae122f419324
applied changes from 2762c6075c0dc52a96098c5478c5bf68cfd890a3
Luke Schierer <lschiere@pidgin.im>
parents:
19859
diff
changeset
|
85 | wpurple_fcntl( fd, command, ##__VA_ARGS__ ) |
| 3776 | 86 | |
| 87 | /* arpa/inet.h */ | |
| 88 | #define inet_aton( name, addr ) \ | |
| 15884 | 89 | wpurple_inet_aton( name, addr ) |
| 3776 | 90 | |
|
14974
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
91 | #define inet_ntop( af, src, dst, cnt ) \ |
| 15884 | 92 | wpurple_inet_ntop( af, src, dst, cnt ) |
|
14974
8180f0f2e20c
[gaim-migrate @ 17684]
Daniel Atallah <datallah@pidgin.im>
parents:
14286
diff
changeset
|
93 | |
|
32069
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
29735
diff
changeset
|
94 | #define inet_pton( af, src, dst ) \ |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
29735
diff
changeset
|
95 | wpurple_inet_pton( af, src, dst ) |
|
fc06dd6b7c3f
Fix the compilation of the Bonjour prpl on Windows.
Eion Robb <eion@robbmob.com>
parents:
29735
diff
changeset
|
96 | |
| 3776 | 97 | /* netdb.h */ |
| 98 | #define gethostbyname( name ) \ | |
| 15884 | 99 | wpurple_gethostbyname( name ) |
| 3776 | 100 | |
|
5084
21d2e7ec99ce
[gaim-migrate @ 5439]
Herman Bloggs <herman@bluedigits.com>
parents:
4905
diff
changeset
|
101 | /* netinet/in.h */ |
|
21d2e7ec99ce
[gaim-migrate @ 5439]
Herman Bloggs <herman@bluedigits.com>
parents:
4905
diff
changeset
|
102 | #define ntohl( netlong ) \ |
|
7242
d91a60e1095c
[gaim-migrate @ 7817]
Herman Bloggs <herman@bluedigits.com>
parents:
5913
diff
changeset
|
103 | (unsigned int)ntohl( netlong ) |
|
5084
21d2e7ec99ce
[gaim-migrate @ 5439]
Herman Bloggs <herman@bluedigits.com>
parents:
4905
diff
changeset
|
104 | |
| 3776 | 105 | /* string.h */ |
| 106 | #define hstrerror( herror ) \ | |
| 15884 | 107 | wpurple_strerror( errno ) |
| 3776 | 108 | #define strerror( errornum ) \ |
| 15884 | 109 | wpurple_strerror( errornum ) |
|
22686
d41016d7812d
Add extern "C" wrappers to win32 headers. There is also a change here that I thought I committed earlier that should provide better error messages for winsock errors.
Daniel Atallah <datallah@pidgin.im>
parents:
20294
diff
changeset
|
110 | #define g_strerror( errornum ) \ |
|
d41016d7812d
Add extern "C" wrappers to win32 headers. There is also a change here that I thought I committed earlier that should provide better error messages for winsock errors.
Daniel Atallah <datallah@pidgin.im>
parents:
20294
diff
changeset
|
111 | wpurple_strerror( errornum ) |
| 3776 | 112 | |
| 113 | /* unistd.h */ | |
| 114 | #define read( fd, buf, buflen ) \ | |
| 15884 | 115 | wpurple_read( fd, buf, buflen ) |
| 3776 | 116 | |
| 117 | #define write( socket, buf, buflen ) \ | |
| 15884 | 118 | wpurple_write( socket, buf, buflen ) |
| 3776 | 119 | |
| 120 | #define close( fd ) \ | |
| 15884 | 121 | wpurple_close( fd ) |
| 3776 | 122 | |
|
9570
8b3f38824cd3
[gaim-migrate @ 10413]
Herman Bloggs <herman@bluedigits.com>
parents:
8563
diff
changeset
|
123 | #ifndef sleep |
| 3776 | 124 | #define sleep(x) Sleep((x)*1000) |
|
9570
8b3f38824cd3
[gaim-migrate @ 10413]
Herman Bloggs <herman@bluedigits.com>
parents:
8563
diff
changeset
|
125 | #endif |
| 3776 | 126 | |
|
8244
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
7242
diff
changeset
|
127 | #define gethostname( name, size ) \ |
| 15884 | 128 | wpurple_gethostname( name, size ) |
|
8244
014ff38feea9
[gaim-migrate @ 8967]
Herman Bloggs <herman@bluedigits.com>
parents:
7242
diff
changeset
|
129 | |
|
20294
5af4a755ab36
applied changes from b8fa91b64c41d38520d7944d70d627007e271158
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
20239
diff
changeset
|
130 | #define fsync(fd) _commit(fd) |
|
5af4a755ab36
applied changes from b8fa91b64c41d38520d7944d70d627007e271158
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
20239
diff
changeset
|
131 | |
| 3776 | 132 | /* sys/time.h */ |
| 133 | #define gettimeofday( timeval, timezone ) \ | |
| 15884 | 134 | wpurple_gettimeofday( timeval, timezone ) |
| 3776 | 135 | |
| 136 | /* stdio.h */ | |
|
35893
c83a09a6e3d5
Fix legacy win32 build
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35892
diff
changeset
|
137 | #if !defined(__MINGW64_VERSION_MAJOR) || __MINGW64_VERSION_MAJOR < 3 || \ |
|
c83a09a6e3d5
Fix legacy win32 build
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35892
diff
changeset
|
138 | !defined(IS_WIN32_CROSS_COMPILED) |
|
35863
9def6c9f26a6
cross-win32: don't redefine (v)snprintf on mingw64
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35849
diff
changeset
|
139 | # undef snprintf |
|
9def6c9f26a6
cross-win32: don't redefine (v)snprintf on mingw64
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35849
diff
changeset
|
140 | # define snprintf _snprintf |
|
9def6c9f26a6
cross-win32: don't redefine (v)snprintf on mingw64
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35849
diff
changeset
|
141 | # undef vsnprintf |
|
9def6c9f26a6
cross-win32: don't redefine (v)snprintf on mingw64
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35849
diff
changeset
|
142 | # define vsnprintf _vsnprintf |
|
9def6c9f26a6
cross-win32: don't redefine (v)snprintf on mingw64
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35849
diff
changeset
|
143 | #endif |
| 3776 | 144 | |
|
4905
1464e05926f0
[gaim-migrate @ 5239]
Herman Bloggs <herman@bluedigits.com>
parents:
4714
diff
changeset
|
145 | #define rename( oldname, newname ) \ |
|
32257
afafdf5bbf60
Remove wpurple_rename(). I suspect nobody actually ever used it directly
Daniel Atallah <datallah@pidgin.im>
parents:
29735
diff
changeset
|
146 | g_rename( oldname, newname ) |
|
10601
84245a6eba0e
[gaim-migrate @ 12028]
Daniel Atallah <datallah@pidgin.im>
parents:
10589
diff
changeset
|
147 | |
|
5113
8e545faf3d80
[gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents:
5084
diff
changeset
|
148 | /* time.h */ |
|
35849
77efee65c5f4
cross-win32: fix socklen_t check, win32dep.h include, undef pthread's localtime_r
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32744
diff
changeset
|
149 | /* XXX: it may be also defined by pthread.h */ |
|
77efee65c5f4
cross-win32: fix socklen_t check, win32dep.h include, undef pthread's localtime_r
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
32744
diff
changeset
|
150 | #undef localtime_r |
|
5113
8e545faf3d80
[gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents:
5084
diff
changeset
|
151 | #define localtime_r( time, resultp ) \ |
| 15884 | 152 | wpurple_localtime_r( time, resultp ) |
|
5113
8e545faf3d80
[gaim-migrate @ 5476]
Herman Bloggs <herman@bluedigits.com>
parents:
5084
diff
changeset
|
153 | |
|
39383
0f9d49617abc
Use G_BEGIN_DECLS and G_END_DECLS instead of raw extern "C"
Mike Ruprecht <cmaiku@gmail.com>
parents:
35893
diff
changeset
|
154 | G_END_DECLS |
|
22686
d41016d7812d
Add extern "C" wrappers to win32 headers. There is also a change here that I thought I committed earlier that should provide better error messages for winsock errors.
Daniel Atallah <datallah@pidgin.im>
parents:
20294
diff
changeset
|
155 | |
|
39659
e4dfb99b0cef
Fix libpurple header guards using reserved names.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39383
diff
changeset
|
156 | #endif /* PURPLE_WIN32_LIBC_INTERFACE_H */ |