Mercurial > dwindows
annotate dwcompat.h @ 2087:082d743f3214
Reorder configure so SOSUFFIX is only used after it is set per platform.
Remove newly broken QNX/Photon support from configure.
Mac: Attempt a new test for the UserNotifications framework.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Fri, 05 Jun 2020 06:00:17 +0000 |
parents | 4bfcad4986ff |
children | 07f1366a724c |
rev | line source |
---|---|
1909
cb5f9aa9aebb
Added detection support for Windows 10.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1864
diff
changeset
|
1 /* $Id$ */ |
3 | 2 |
1594
6baf177f335c
Rename compat.c/h dwcompat.c/h and configure option to --with-dwcompat.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1589
diff
changeset
|
3 #ifndef _DWCOMPAT_H |
6baf177f335c
Rename compat.c/h dwcompat.c/h and configure option to --with-dwcompat.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1589
diff
changeset
|
4 #define _DWCOMPAT_H |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
5 |
3 | 6 /* This header includes and defines everything needed for a given OS/compiler */ |
433
f225f16bebbd
Compile fixes for MacOS X.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
234
diff
changeset
|
7 #if defined(__UNIX__) || defined(__MAC__) |
1655
de4b88ee7ad8
Only include compat.h when building the dwcompat shared library.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1601
diff
changeset
|
8 #ifdef BUILD_DLL |
1695
90d02916b878
Strange for some reason we are including compat.h instead of config.h?
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1655
diff
changeset
|
9 #include "config.h" |
1655
de4b88ee7ad8
Only include compat.h when building the dwcompat shared library.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1601
diff
changeset
|
10 #endif |
3 | 11 |
1589
9a21fbd6ae50
Don't rely on configure to add the 64bit file #defines on Unix and Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1587
diff
changeset
|
12 /* Attempt to include 64 bit file functions on various unix flavors */ |
9a21fbd6ae50
Don't rely on configure to add the 64bit file #defines on Unix and Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1587
diff
changeset
|
13 #ifndef _FILE_OFFSET_BITS |
9a21fbd6ae50
Don't rely on configure to add the 64bit file #defines on Unix and Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1587
diff
changeset
|
14 #define _FILE_OFFSET_BITS 64 |
9a21fbd6ae50
Don't rely on configure to add the 64bit file #defines on Unix and Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1587
diff
changeset
|
15 #endif |
9a21fbd6ae50
Don't rely on configure to add the 64bit file #defines on Unix and Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1587
diff
changeset
|
16 #ifndef _LARGEFILE_SOURCE |
9a21fbd6ae50
Don't rely on configure to add the 64bit file #defines on Unix and Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1587
diff
changeset
|
17 #define _LARGEFILE_SOURCE 1 |
9a21fbd6ae50
Don't rely on configure to add the 64bit file #defines on Unix and Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1587
diff
changeset
|
18 #endif |
9a21fbd6ae50
Don't rely on configure to add the 64bit file #defines on Unix and Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1587
diff
changeset
|
19 #ifndef _LARGEFILE64_SOURCE |
9a21fbd6ae50
Don't rely on configure to add the 64bit file #defines on Unix and Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1587
diff
changeset
|
20 #define _LARGEFILE64_SOURCE 1 |
9a21fbd6ae50
Don't rely on configure to add the 64bit file #defines on Unix and Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1587
diff
changeset
|
21 #endif |
9a21fbd6ae50
Don't rely on configure to add the 64bit file #defines on Unix and Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1587
diff
changeset
|
22 #ifndef _LARGE_FILES |
9a21fbd6ae50
Don't rely on configure to add the 64bit file #defines on Unix and Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1587
diff
changeset
|
23 #define _LARGE_FILES 1 |
9a21fbd6ae50
Don't rely on configure to add the 64bit file #defines on Unix and Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1587
diff
changeset
|
24 #endif |
9a21fbd6ae50
Don't rely on configure to add the 64bit file #defines on Unix and Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1587
diff
changeset
|
25 #ifndef _DARWIN_USE_64_BIT_INODE |
9a21fbd6ae50
Don't rely on configure to add the 64bit file #defines on Unix and Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1587
diff
changeset
|
26 #define _DARWIN_USE_64_BIT_INODE 1 |
9a21fbd6ae50
Don't rely on configure to add the 64bit file #defines on Unix and Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1587
diff
changeset
|
27 #endif |
9a21fbd6ae50
Don't rely on configure to add the 64bit file #defines on Unix and Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1587
diff
changeset
|
28 |
41
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
29 #include <sys/stat.h> |
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
30 #include <unistd.h> |
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
31 void msleep(long period); |
3 | 32 #endif /* Unix */ |
33 | |
41
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
34 #ifndef __TARGET__ |
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
35 #define __TARGET__ "dw" |
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
36 #endif |
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
37 |
3 | 38 #include <sys/types.h> |
39 #if HAVE_DIRENT_H | |
40 #include <dirent.h> | |
41 #define NAMLEN(dirent) strlen((dirent)->d_name) | |
42 #else | |
43 #define dirent direct | |
44 #define NAMLEN(dirent) (dirent)->d_namlen | |
45 #if HAVE_SYS_NDIR_H | |
46 #include <sys/ndir.h> | |
47 #endif /* HAVE_SYS_NDIR_H */ | |
48 #if HAVE_SYS_DIR_H | |
49 #include <sys/dir.h> | |
50 #endif /* HAVE_SYS_DIR_H */ | |
51 #if HAVE_NDIR_H | |
52 #include <ndir.h> | |
53 #endif /* HAVE_NDIR_H */ | |
54 #endif /* HAVE_DIRENT_H */ | |
55 | |
56 #ifdef DIRSEP | |
57 #undef DIRSEP | |
58 #endif | |
59 | |
1587
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
60 #ifdef __WATCOMC__ |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
61 #include <alloca.h> |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
62 #include <sys/select.h> |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
63 #include <sys/stat.h> |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
64 # ifdef _stati64 |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
65 # ifdef stat |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
66 # undef stat |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
67 # endif |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
68 # define stat(a, b) _stati64(a, b) |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
69 # define dwstat _stati64 |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
70 # endif |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
71 #endif |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
72 |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
73 #if defined(__EMX__) || defined(__OS2__) || defined(__WIN32__) || defined(WINNT) |
3 | 74 #include <io.h> |
75 #include <process.h> | |
76 | |
77 #define DIRSEP "\\" | |
78 #define TYPDIR "." | |
79 #else | |
80 #define DIRSEP "/" | |
41
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
81 #define TYPDIR "/usr/local/" __TARGET__ |
3 | 82 #endif |
908
850b2e6cfeab
Have INIDIR use the home directory on all platforms now, not just Unix and Mac.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
597
diff
changeset
|
83 #define INIDIR "~/." __TARGET__ |
3 | 84 |
85 /* OS/2 */ | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
86 #if defined(__EMX__) || defined(__OS2__) |
3 | 87 #define INCL_WIN |
88 #define INCL_GPI | |
89 #define INCL_VIO | |
90 #define INCL_NLS | |
91 #define INCL_DOS | |
92 #define INCL_DEV | |
93 #define INCL_DOSERRORS | |
94 | |
1404
56f311dc23f6
Changes to get the library building with Watcom on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1329
diff
changeset
|
95 #ifdef __OS2__ |
56f311dc23f6
Changes to get the library building with Watcom on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1329
diff
changeset
|
96 # if (defined(__IBMC__) || defined(__WATCOMC__) || defined(_System)) && !defined(API) |
56f311dc23f6
Changes to get the library building with Watcom on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1329
diff
changeset
|
97 # define API _System |
56f311dc23f6
Changes to get the library building with Watcom on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1329
diff
changeset
|
98 # endif |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
99 #endif |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
100 |
543
8217ee5c254e
Get EMX compiling again.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
527
diff
changeset
|
101 #ifndef API |
8217ee5c254e
Get EMX compiling again.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
527
diff
changeset
|
102 #define API |
8217ee5c254e
Get EMX compiling again.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
527
diff
changeset
|
103 #endif |
8217ee5c254e
Get EMX compiling again.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
527
diff
changeset
|
104 |
1991
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
105 #include <stdio.h> |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
106 |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
107 /* Mostly safe but slow snprintf() for compilers that don't have it... |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
108 * like VisualAge. So we can write safe code and still use VAC to test. |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
109 */ |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
110 #if defined(__IBMC__) && !defined(snprintf) |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
111 #include <stdarg.h> |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
112 #include <string.h> |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
113 #include <stdlib.h> |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
114 static int _dw_snprintf(char *str, size_t size, const char *format, ...) |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
115 { |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
116 va_list args; |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
117 char *outbuf = calloc(1, size + strlen(format) + 1024); |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
118 int retval = -1; |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
119 |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
120 if(outbuf) |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
121 { |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
122 va_start(args, format); |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
123 vsprintf(outbuf, format, args); |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
124 va_end(args); |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
125 retval = strlen(outbuf); |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
126 strncpy(str, outbuf, size); |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
127 free(outbuf); |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
128 } |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
129 return retval; |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
130 } |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
131 #define snprintf _dw_snprintf |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
132 #endif |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
133 |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
134 |
3 | 135 #define msleep(a) DosSleep(a) |
136 | |
137 #ifdef __EMX__ | |
525
2ff26b697877
Fixes for building with Innotek GCC. Will have to check for regressions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
433
diff
changeset
|
138 #include "platform/dirent.h" |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
139 #include <sys/stat.h> |
28
cd715f9036c0
Added HAVE_PIPE define for EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
24
diff
changeset
|
140 #define HAVE_PIPE |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
141 #ifdef FD_SETSIZE |
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
142 #undef FD_SETSIZE |
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
143 #endif |
3 | 144 #define FD_SETSIZE 1024 |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
145 #endif /* __EMX__ */ |
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
146 |
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
147 #if defined(__EMX__) || defined(__WATCOMC__) |
3 | 148 #define strcasecmp stricmp |
149 #define strncasecmp strnicmp | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
150 #endif |
3 | 151 |
152 #ifndef OS2 | |
153 #define OS2 | |
154 #endif /* OS2 */ | |
155 | |
156 #include <os2.h> | |
157 | |
158 #ifndef BKS_TABBEDDIALOG | |
159 #define BKS_TABBEDDIALOG 0x0800 | |
571
828e6a66c5c5
Add dw_listbox_list_append()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
557
diff
changeset
|
160 #endif |
3 | 161 |
1960
22e3e829be13
Win: Switch to using winsock 2.x, this will remove support for ancient versions of Windows like 95 and NT 3.5 and older...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1909
diff
changeset
|
162 #define PIPEROOT "\\socket\\" |
3 | 163 #endif /* __EMX__ || __IBMC__ */ |
164 | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
165 #if defined(__OS2__) && (defined(__IBMC__) || defined(__WATCOMC__)) |
3 | 166 #define BSD_SELECT |
167 | |
168 #include <types.h> | |
169 #include <time.h> | |
170 #include <sys/stat.h> | |
171 #include <sys/select.h> | |
172 #include <sys/ioctl.h> | |
173 #include <direct.h> | |
174 #include <stdarg.h> | |
175 /* For VAC we are using the Mozilla dirent.c */ | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
176 #ifndef __WATCOMC__ |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
177 #include "platform/dirent.h" |
3 | 178 #endif |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
179 #endif |
3 | 180 |
181 /* Windows */ | |
182 #if defined(__WIN32__) || defined(WINNT) | |
527
e0ea29c3d1eb
Fixed dw_window_pointer() so it works on Windows. Tried to fix the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
525
diff
changeset
|
183 |
e0ea29c3d1eb
Fixed dw_window_pointer() so it works on Windows. Tried to fix the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
525
diff
changeset
|
184 #if defined(MSVC) && !defined(API) |
1859
b02aa3947562
Missing dw_filesystem_set_column_title export from the MinGW definition
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1842
diff
changeset
|
185 # if defined(__MINGW32__) && defined(BUILD_DLL) |
b02aa3947562
Missing dw_filesystem_set_column_title export from the MinGW definition
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1842
diff
changeset
|
186 # define API _cdecl __declspec(dllexport) |
571
828e6a66c5c5
Add dw_listbox_list_append()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
557
diff
changeset
|
187 # else |
828e6a66c5c5
Add dw_listbox_list_append()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
557
diff
changeset
|
188 # define API _cdecl |
828e6a66c5c5
Add dw_listbox_list_append()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
557
diff
changeset
|
189 # endif |
527
e0ea29c3d1eb
Fixed dw_window_pointer() so it works on Windows. Tried to fix the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
525
diff
changeset
|
190 #endif |
e0ea29c3d1eb
Fixed dw_window_pointer() so it works on Windows. Tried to fix the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
525
diff
changeset
|
191 |
1960
22e3e829be13
Win: Switch to using winsock 2.x, this will remove support for ancient versions of Windows like 95 and NT 3.5 and older...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1909
diff
changeset
|
192 #include <winsock2.h> |
3 | 193 #include <windows.h> |
194 #include <time.h> | |
195 #include <process.h> | |
196 #include <sys/stat.h> | |
571
828e6a66c5c5
Add dw_listbox_list_append()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
557
diff
changeset
|
197 |
3 | 198 #ifdef MSVC |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
199 #include "platform/dirent.h" |
1842
123d1a900f54
More MINGW cleanups... eliminate a few more warnings and disable the unused-value warning due to unfixable warnings generated by the Win32 macros.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1839
diff
changeset
|
200 #undef alloca |
581
53639d920735
Fixes for Windows, alloca is _alloc in MSVC, added a macro in compat.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
580
diff
changeset
|
201 #define alloca _alloca |
1584
1fb62c442283
Added dwstat #define in compat.h which will be the 64bit stat struct if available on the given platform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1404
diff
changeset
|
202 #ifdef __stat64 |
1fb62c442283
Added dwstat #define in compat.h which will be the 64bit stat struct if available on the given platform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1404
diff
changeset
|
203 #undef stat |
1fb62c442283
Added dwstat #define in compat.h which will be the 64bit stat struct if available on the given platform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1404
diff
changeset
|
204 #define stat(a, b) _stat64(a, b) |
1fb62c442283
Added dwstat #define in compat.h which will be the 64bit stat struct if available on the given platform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1404
diff
changeset
|
205 #define dwstat __stat64 |
1fb62c442283
Added dwstat #define in compat.h which will be the 64bit stat struct if available on the given platform.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1404
diff
changeset
|
206 #endif |
1975
b2cb0ef3ec3d
Win: Added partial or full dark mode support for containers, trees and toolbars.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1962
diff
changeset
|
207 #include <direct.h> |
3 | 208 #else |
209 #include <dir.h> | |
210 #include <dirent.h> | |
211 #endif | |
571
828e6a66c5c5
Add dw_listbox_list_append()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
557
diff
changeset
|
212 |
3 | 213 #include <stdarg.h> |
214 | |
1960
22e3e829be13
Win: Switch to using winsock 2.x, this will remove support for ancient versions of Windows like 95 and NT 3.5 and older...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1909
diff
changeset
|
215 /* Cygwin and Visual Studio 15.4 (SDK 10.0.16299.15) support domain sockets */ |
22e3e829be13
Win: Switch to using winsock 2.x, this will remove support for ancient versions of Windows like 95 and NT 3.5 and older...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1909
diff
changeset
|
216 #if defined(__CYGWIN32__) |
3 | 217 #include <sys/un.h> |
1960
22e3e829be13
Win: Switch to using winsock 2.x, this will remove support for ancient versions of Windows like 95 and NT 3.5 and older...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1909
diff
changeset
|
218 #elif defined(_MSC_VER) && _MSC_VER >= 1912 |
22e3e829be13
Win: Switch to using winsock 2.x, this will remove support for ancient versions of Windows like 95 and NT 3.5 and older...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1909
diff
changeset
|
219 #include <afunix.h> |
1961
824fdbc2f761
Win: I guess C:\Windows\Temp might not always be writable, so use getenv("TEMP") instead.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1960
diff
changeset
|
220 #define PIPEROOT getenv("TEMP") ? getenv("TEMP") : "C:\\Windows\\Temp\\" |
1960
22e3e829be13
Win: Switch to using winsock 2.x, this will remove support for ancient versions of Windows like 95 and NT 3.5 and older...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1909
diff
changeset
|
221 #else |
22e3e829be13
Win: Switch to using winsock 2.x, this will remove support for ancient versions of Windows like 95 and NT 3.5 and older...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1909
diff
changeset
|
222 #define NO_DOMAIN_SOCKETS |
22e3e829be13
Win: Switch to using winsock 2.x, this will remove support for ancient versions of Windows like 95 and NT 3.5 and older...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1909
diff
changeset
|
223 #endif |
3 | 224 |
225 #if defined(_P_NOWAIT) && !defined(P_NOWAIT) | |
226 #define P_NOWAIT _P_NOWAIT | |
227 #endif | |
228 | |
1601
71e0a3ad07f7
Enable level 3 warnings in DEBUG mode with Visual C to show deprecation warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1594
diff
changeset
|
229 #ifdef _MSC_VER |
71e0a3ad07f7
Enable level 3 warnings in DEBUG mode with Visual C to show deprecation warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1594
diff
changeset
|
230 /* Handle deprecated functions in Visual C */ |
71e0a3ad07f7
Enable level 3 warnings in DEBUG mode with Visual C to show deprecation warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1594
diff
changeset
|
231 # if _MSC_VER >= 1400 |
71e0a3ad07f7
Enable level 3 warnings in DEBUG mode with Visual C to show deprecation warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1594
diff
changeset
|
232 # define strcasecmp(a, b) _stricmp(a, b) |
71e0a3ad07f7
Enable level 3 warnings in DEBUG mode with Visual C to show deprecation warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1594
diff
changeset
|
233 # define strncasecmp(a, b, c) _strnicmp(a, b, c) |
71e0a3ad07f7
Enable level 3 warnings in DEBUG mode with Visual C to show deprecation warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1594
diff
changeset
|
234 # define strdup(a) _strdup(a) |
1710
b217cf9161c7
Move some more platform specific code into dwcompat.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1695
diff
changeset
|
235 # define snprintf _snprintf |
1601
71e0a3ad07f7
Enable level 3 warnings in DEBUG mode with Visual C to show deprecation warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1594
diff
changeset
|
236 # define unlink(a) _unlink(a) |
71e0a3ad07f7
Enable level 3 warnings in DEBUG mode with Visual C to show deprecation warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1594
diff
changeset
|
237 # define close(a) _close(a) |
71e0a3ad07f7
Enable level 3 warnings in DEBUG mode with Visual C to show deprecation warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1594
diff
changeset
|
238 # define fdopen(a, b) _fdopen(a, b) |
71e0a3ad07f7
Enable level 3 warnings in DEBUG mode with Visual C to show deprecation warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1594
diff
changeset
|
239 # define chdir(a) _chdir(a) |
1839
22225eb286e5
Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1715
diff
changeset
|
240 #ifndef _DW_INTERNAL |
22225eb286e5
Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1715
diff
changeset
|
241 # define mkdir(a,b) _mkdir(a) |
22225eb286e5
Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1715
diff
changeset
|
242 #endif |
1601
71e0a3ad07f7
Enable level 3 warnings in DEBUG mode with Visual C to show deprecation warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1594
diff
changeset
|
243 # else |
71e0a3ad07f7
Enable level 3 warnings in DEBUG mode with Visual C to show deprecation warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1594
diff
changeset
|
244 # define strcasecmp(a, b) stricmp(a, b) |
71e0a3ad07f7
Enable level 3 warnings in DEBUG mode with Visual C to show deprecation warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1594
diff
changeset
|
245 # define strncasecmp(a, b, c) strnicmp(a, b, c) |
71e0a3ad07f7
Enable level 3 warnings in DEBUG mode with Visual C to show deprecation warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1594
diff
changeset
|
246 # endif |
71e0a3ad07f7
Enable level 3 warnings in DEBUG mode with Visual C to show deprecation warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1594
diff
changeset
|
247 #endif |
71e0a3ad07f7
Enable level 3 warnings in DEBUG mode with Visual C to show deprecation warnings.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1594
diff
changeset
|
248 #define msleep(a) Sleep(a) |
3 | 249 |
250 #endif /* WIN32 */ | |
251 | |
252 /* Everything else ;) */ | |
253 #include <stdio.h> | |
254 #ifdef HAVE_UNISTD_H | |
255 #include <unistd.h> | |
256 #endif /* HAVE_UNISTD_H */ | |
257 #ifdef HAVE_SYS_STAT_H | |
258 #include <sys/stat.h> | |
259 #endif | |
260 #include <stdlib.h> | |
261 #include <stddef.h> | |
262 #include <signal.h> | |
263 #include <fcntl.h> | |
264 | |
265 #if !defined(__WIN32__) && !defined(WINNT) | |
1992
4bfcad4986ff
OS/2: Fix compilation error with Watcom C on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1991
diff
changeset
|
266 #ifndef __WATCOMC__ |
3 | 267 #include <sys/time.h> |
1992
4bfcad4986ff
OS/2: Fix compilation error with Watcom C on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1991
diff
changeset
|
268 #endif |
3 | 269 #include <sys/socket.h> |
270 #include <sys/un.h> | |
271 #include <netinet/in.h> | |
272 #include <netdb.h> | |
1324
032037c378ef
Don't include arpa/inet.h on OS/2 with VisualAge.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1323
diff
changeset
|
273 #ifndef __IBMC__ |
1323
209d7f5137f2
Cleaned up the compatibility library header.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
908
diff
changeset
|
274 #include <arpa/inet.h> |
1324
032037c378ef
Don't include arpa/inet.h on OS/2 with VisualAge.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1323
diff
changeset
|
275 #endif |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
276 #if defined(__OS2__) && defined(RES_DEFAULT) |
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
277 #undef RES_DEFAULT |
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
278 #endif |
3 | 279 #include <stdarg.h> |
280 #include <string.h> | |
281 #endif /* !WIN32 */ | |
41
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
282 #include <ctype.h> |
3 | 283 |
284 #ifndef _MAX_PATH | |
285 #define _MAX_PATH 255 | |
286 #endif | |
287 | |
288 /* IBM C doesn't allow "t" in the mode parameter | |
289 * because it violates the ANSI standard. | |
290 */ | |
291 #ifdef __IBMC__ | |
292 #define FOPEN_READ_TEXT "r" | |
293 #define FOPEN_WRITE_TEXT "w" | |
294 #define FOPEN_APPEND_TEXT "a" | |
295 #else | |
296 #define FOPEN_READ_TEXT "rt" | |
297 #define FOPEN_WRITE_TEXT "wt" | |
298 #define FOPEN_APPEND_TEXT "at" | |
299 #endif | |
300 #define FOPEN_READ_BINARY "rb" | |
301 #define FOPEN_WRITE_BINARY "wb" | |
302 #define FOPEN_APPEND_BINARY "ab" | |
303 | |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
304 #ifndef API |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
305 #define API |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
306 #endif |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
307 |
1991
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
308 #ifndef PIPEROOT |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
309 #define PIPEROOT "/tmp/" |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
310 #endif |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
311 |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
312 #define PIPENAME "%s" __TARGET__ "%d-%d" |
d83a86f5fe7f
OS/2: Move internal snprintf() into dw.h and dwcompat.h so it can be used
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1975
diff
changeset
|
313 |
580
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
314 /* Compatibility layer for IBM C/Winsock |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
315 * Now using macros so we can allow cross |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
316 * compiler support. |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
317 */ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
318 |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
319 #if defined(__IBMC__) || (defined(__WIN32__) && !defined(__CYGWIN32__)) |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
320 #define sockread(a, b, c, d) recv(a, b, c, d) |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
321 #else |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
322 #define sockread(a, b, c, d) read(a, b, c) |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
323 #endif |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
324 |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
325 #if defined(__IBMC__) || (defined(__WIN32__) && !defined(__CYGWIN32__)) |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
326 #define sockwrite(a, b, c, d) send(a, b, c, d) |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
327 #else |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
328 #define sockwrite(a, b, c, d) write(a, b, c) |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
329 #endif |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
330 |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
331 #ifdef __IBMC__ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
332 #define sockclose(a) soclose(a) |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
333 #elif defined(__WIN32__) && !defined(__CYGWIN32__) |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
334 #define sockclose(a) closesocket(a) |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
335 #else |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
336 #define sockclose(a) close(a) |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
337 #endif |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
338 |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
339 #if defined(__OS2__) && !defined(__EMX__) |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
340 #define nonblock(a) { int _nonblock = 1; ioctl(a, FIONBIO, (char *)&_nonblock, sizeof(_nonblock)); } |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
341 #elif defined(__WIN32__) && !defined(__CYGWIN32__) |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
342 #define nonblock(a) { int _nonblock = 1; ioctlsocket(a, FIONBIO, (unsigned long *)&_nonblock); } |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
343 #else |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
344 #define nonblock(a) fcntl(a, F_SETFL, O_NONBLOCK) |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
345 #endif |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
346 |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
347 #if defined(__OS2__) && !defined(__EMX__) |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
348 #define block(a) { int _block = 0; ioctl(a, FIONBIO, (char *)&_nonblock, sizeof(_block)); } |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
349 #elif defined(__WIN32__) && !defined(__CYGWIN32__) |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
350 #define block(a) { int _block = 0; ioctlsocket(a, FIONBIO, (unsigned long *)&_block); } |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
351 #else |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
352 #define block(a) fcntl(a, F_SETFL, 0) |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
353 #endif |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
354 |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
355 #ifdef __IBMC__ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
356 #define sockinit() sock_init(); |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
357 #elif defined(__WIN32__) || defined(WINNT) |
1960
22e3e829be13
Win: Switch to using winsock 2.x, this will remove support for ancient versions of Windows like 95 and NT 3.5 and older...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1909
diff
changeset
|
358 #define sockinit() { static WSADATA wsa; WSAStartup(MAKEWORD (2, 0), &wsa); } |
580
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
359 #else /* !WIN32 */ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
360 #define sockinit() |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
361 #endif |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
362 |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
363 #if defined(__WIN32__) || defined(WINNT) |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
364 #define sockshutdown() WSACleanup() |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
365 #else /* !WIN32 */ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
366 #define sockshutdown() |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
367 #endif |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
368 |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
369 #ifdef HAVE_PIPE |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
370 #define sockpipe(pipes) { if(pipe(pipes) < 0) pipes[0] = pipes[1] = -1; } |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
371 #elif !defined(NO_DOMAIN_SOCKETS) |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
372 #define sockpipe(pipes) { \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
373 struct sockaddr_un un; \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
374 int tmpsock = socket(AF_UNIX, SOCK_STREAM, 0); \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
375 pipes[1] = socket(AF_UNIX, SOCK_STREAM, 0); \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
376 memset(&un, 0, sizeof(un)); \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
377 un.sun_family=AF_UNIX; \ |
1962
50c71474709b
Added PID to the unix domain socket name, to avoid conflicts from multiple
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1961
diff
changeset
|
378 sprintf(un.sun_path, PIPENAME, PIPEROOT, (int)getpid(), pipes[1]); \ |
50c71474709b
Added PID to the unix domain socket name, to avoid conflicts from multiple
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1961
diff
changeset
|
379 unlink(un.sun_path); \ |
580
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
380 bind(tmpsock, (struct sockaddr *)&un, sizeof(un)); \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
381 listen(tmpsock, 0); \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
382 connect(pipes[1], (struct sockaddr *)&un, sizeof(un)); \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
383 pipes[0] = accept(tmpsock, 0, 0); \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
384 sockclose(tmpsock); \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
385 } |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
386 #else |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
387 #define sockpipe(pipes) { \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
388 struct sockaddr_in server_addr; \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
389 struct sockaddr_in listen_addr = { 0 }; \ |
581
53639d920735
Fixes for Windows, alloca is _alloc in MSVC, added a macro in compat.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
580
diff
changeset
|
390 int tmpsock, len = sizeof(struct sockaddr_in); \ |
580
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
391 struct hostent *he = gethostbyname("localhost"); \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
392 pipes[0] = pipes[1] = -1; \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
393 if(he) \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
394 { \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
395 memset(&server_addr, 0, sizeof(server_addr)); \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
396 server_addr.sin_family = AF_INET; \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
397 server_addr.sin_port = 0; \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
398 server_addr.sin_addr.s_addr = INADDR_ANY; \ |
581
53639d920735
Fixes for Windows, alloca is _alloc in MSVC, added a macro in compat.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
580
diff
changeset
|
399 if ((tmpsock = socket(AF_INET, SOCK_STREAM, 0)) > -1 && bind(tmpsock, (struct sockaddr *)&server_addr, sizeof(server_addr)) > -1 && listen(tmpsock, 0) > -1) \ |
53639d920735
Fixes for Windows, alloca is _alloc in MSVC, added a macro in compat.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
580
diff
changeset
|
400 { \ |
53639d920735
Fixes for Windows, alloca is _alloc in MSVC, added a macro in compat.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
580
diff
changeset
|
401 memset(&listen_addr, 0, sizeof(listen_addr)); \ |
53639d920735
Fixes for Windows, alloca is _alloc in MSVC, added a macro in compat.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
580
diff
changeset
|
402 getsockname(tmpsock, (struct sockaddr *)&listen_addr, &len); \ |
53639d920735
Fixes for Windows, alloca is _alloc in MSVC, added a macro in compat.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
580
diff
changeset
|
403 server_addr.sin_family = AF_INET; \ |
53639d920735
Fixes for Windows, alloca is _alloc in MSVC, added a macro in compat.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
580
diff
changeset
|
404 server_addr.sin_port = listen_addr.sin_port; \ |
53639d920735
Fixes for Windows, alloca is _alloc in MSVC, added a macro in compat.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
580
diff
changeset
|
405 server_addr.sin_addr.s_addr = *((unsigned long *)he->h_addr); \ |
53639d920735
Fixes for Windows, alloca is _alloc in MSVC, added a macro in compat.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
580
diff
changeset
|
406 if((pipes[1] = socket(AF_INET, SOCK_STREAM, 0)) > -1 && !connect(pipes[1], (struct sockaddr *)&server_addr, sizeof(server_addr))) \ |
53639d920735
Fixes for Windows, alloca is _alloc in MSVC, added a macro in compat.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
580
diff
changeset
|
407 pipes[0] = accept(tmpsock, 0, 0); \ |
53639d920735
Fixes for Windows, alloca is _alloc in MSVC, added a macro in compat.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
580
diff
changeset
|
408 } \ |
580
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
409 sockclose(tmpsock); \ |
581
53639d920735
Fixes for Windows, alloca is _alloc in MSVC, added a macro in compat.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
580
diff
changeset
|
410 } \ |
53639d920735
Fixes for Windows, alloca is _alloc in MSVC, added a macro in compat.h.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
580
diff
changeset
|
411 } |
580
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
412 #endif |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
413 |
1329
19bfcdbab74e
Hopefully the last socklen_t change... OS/2 needs it too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1328
diff
changeset
|
414 /* Ok Windows and OS/2 both seem to be missing this */ |
19bfcdbab74e
Hopefully the last socklen_t change... OS/2 needs it too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1328
diff
changeset
|
415 #if defined(__WIN32__) || defined(__OS2__) |
1326
03f0a57c9e87
Make sure socklen_t gets defined when building with Visual Studio.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1324
diff
changeset
|
416 typedef int socklen_t; |
03f0a57c9e87
Make sure socklen_t gets defined when building with Visual Studio.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1324
diff
changeset
|
417 #endif |
03f0a57c9e87
Make sure socklen_t gets defined when building with Visual Studio.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1324
diff
changeset
|
418 |
1585
0576c5444587
Oops fallback dwstat didn't work quite right in that last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1584
diff
changeset
|
419 /* If dwstat didn't otherwise get defined */ |
0576c5444587
Oops fallback dwstat didn't work quite right in that last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1584
diff
changeset
|
420 #ifndef dwstat |
0576c5444587
Oops fallback dwstat didn't work quite right in that last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1584
diff
changeset
|
421 #define dwstat stat |
0576c5444587
Oops fallback dwstat didn't work quite right in that last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1584
diff
changeset
|
422 #endif |
0576c5444587
Oops fallback dwstat didn't work quite right in that last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1584
diff
changeset
|
423 |
1715
e6b139e0b64d
Define O_BINARY as 0 in dwcompat.h for platforms which don't have it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1710
diff
changeset
|
424 /* Make sure O_BINARY is defined */ |
e6b139e0b64d
Define O_BINARY as 0 in dwcompat.h for platforms which don't have it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1710
diff
changeset
|
425 #ifndef O_BINARY |
e6b139e0b64d
Define O_BINARY as 0 in dwcompat.h for platforms which don't have it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1710
diff
changeset
|
426 #define O_BINARY 0 |
e6b139e0b64d
Define O_BINARY as 0 in dwcompat.h for platforms which don't have it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1710
diff
changeset
|
427 #endif |
e6b139e0b64d
Define O_BINARY as 0 in dwcompat.h for platforms which don't have it.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1710
diff
changeset
|
428 |
1839
22225eb286e5
Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1715
diff
changeset
|
429 #if defined(__IBMC__) || defined(__WATCOMC__) || (defined(_MSC_VER) && _MSC_VER < 1400) || defined(__MINGW32__) || defined(__MINGW64__) |
22225eb286e5
Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1715
diff
changeset
|
430 #ifndef _DW_INTERNAL |
22225eb286e5
Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1715
diff
changeset
|
431 # undef mkdir |
22225eb286e5
Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1715
diff
changeset
|
432 # define mkdir(a,b) mkdir(a) |
22225eb286e5
Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1715
diff
changeset
|
433 #endif |
1710
b217cf9161c7
Move some more platform specific code into dwcompat.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1695
diff
changeset
|
434 #endif |
b217cf9161c7
Move some more platform specific code into dwcompat.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1695
diff
changeset
|
435 |
580
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
436 #define socksprint(a, b) sockwrite(a, b, strlen(b), 0) |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
437 |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
438 char * API vargs(char *buf, int len, char *format, ...); |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
439 int API makedir(char *path); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
440 void API setfileinfo(char *filename, char *url, char *logfile); |
1860
02a23143334c
Apparently Visual C's "long double" type is "double" for gcc...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1859
diff
changeset
|
441 #ifdef __MINGW32__ |
02a23143334c
Apparently Visual C's "long double" type is "double" for gcc...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1859
diff
changeset
|
442 double API drivesize(int drive); |
02a23143334c
Apparently Visual C's "long double" type is "double" for gcc...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1859
diff
changeset
|
443 double API drivefree(int drive); |
02a23143334c
Apparently Visual C's "long double" type is "double" for gcc...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1859
diff
changeset
|
444 #else |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
445 long double API drivesize(int drive); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
446 long double API drivefree(int drive); |
1860
02a23143334c
Apparently Visual C's "long double" type is "double" for gcc...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1859
diff
changeset
|
447 #endif |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
448 int API isdrive(int drive); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
449 void API getfsname(int drive, char *buf, int len); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
450 FILE * API fsopen(char *path, char *modes); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
451 int API fsclose(FILE *fp); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
452 char * API fsgets(char *str, int size, FILE *stream); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
453 int API fsseek(FILE *stream, long offset, int whence); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
454 int API locale_init(char *filename, int my_locale); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
455 char * API locale_string(char *default_text, int message); |
557
1a210e2f214b
Added a bunch of support routines I now own due to the settlement
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
543
diff
changeset
|
456 void API nice_strformat(char *dest, long double val, int dec); |
1a210e2f214b
Added a bunch of support routines I now own due to the settlement
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
543
diff
changeset
|
457 void API initdir(int argc, char *argv[]); |
1a210e2f214b
Added a bunch of support routines I now own due to the settlement
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
543
diff
changeset
|
458 int API setpath(char *path); |
571
828e6a66c5c5
Add dw_listbox_list_append()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
557
diff
changeset
|
459 |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
460 #endif |