Mercurial > dwindows
annotate dwcompat.h @ 2322:ebcaedfa7ff4
GTK4: Implement dw_pointer_set_pos() with Xlib. Also translate coordinate
system in dw_window_get_pos_size().
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Wed, 17 Feb 2021 05:32:02 +0000 |
parents | 471cdeaef7ac |
children | a126b04b9996 |
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__) |
2160
07f1366a724c
Rename config.h(.in) to dwconfig.h and install it with dwcompat.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1992
diff
changeset
|
8 #include "dwconfig.h" |
3 | 9 |
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
|
10 /* 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
|
11 #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
|
12 #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
|
13 #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
|
14 #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
|
15 #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
|
16 #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
|
17 #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
|
18 #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
|
19 #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
|
20 #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
|
21 #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
|
22 #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
|
23 #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
|
24 #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
|
25 #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
|
26 |
41
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
27 #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
|
28 #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
|
29 void msleep(long period); |
3 | 30 #endif /* Unix */ |
31 | |
41
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
32 #ifndef __TARGET__ |
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
33 #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
|
34 #endif |
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
35 |
3 | 36 #include <sys/types.h> |
37 #if HAVE_DIRENT_H | |
38 #include <dirent.h> | |
39 #define NAMLEN(dirent) strlen((dirent)->d_name) | |
40 #else | |
41 #define dirent direct | |
42 #define NAMLEN(dirent) (dirent)->d_namlen | |
43 #if HAVE_SYS_NDIR_H | |
44 #include <sys/ndir.h> | |
45 #endif /* HAVE_SYS_NDIR_H */ | |
46 #if HAVE_SYS_DIR_H | |
47 #include <sys/dir.h> | |
48 #endif /* HAVE_SYS_DIR_H */ | |
49 #if HAVE_NDIR_H | |
50 #include <ndir.h> | |
51 #endif /* HAVE_NDIR_H */ | |
52 #endif /* HAVE_DIRENT_H */ | |
53 | |
54 #ifdef DIRSEP | |
55 #undef DIRSEP | |
56 #endif | |
57 | |
1587
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
58 #ifdef __WATCOMC__ |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
59 #include <alloca.h> |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
60 #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
|
61 #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
|
62 # ifdef _stati64 |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
63 # ifdef stat |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
64 # undef stat |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
65 # endif |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
66 # 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
|
67 # define dwstat _stati64 |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
68 # endif |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
69 #endif |
34d970f3ff23
Added 64bit stat and alloca functionality when building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1585
diff
changeset
|
70 |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
71 #if defined(__EMX__) || defined(__OS2__) || defined(__WIN32__) || defined(WINNT) |
3 | 72 #include <io.h> |
73 #include <process.h> | |
74 | |
75 #define DIRSEP "\\" | |
76 #define TYPDIR "." | |
77 #else | |
78 #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
|
79 #define TYPDIR "/usr/local/" __TARGET__ |
3 | 80 #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
|
81 #define INIDIR "~/." __TARGET__ |
3 | 82 |
83 /* OS/2 */ | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
84 #if defined(__EMX__) || defined(__OS2__) |
3 | 85 #define INCL_WIN |
86 #define INCL_GPI | |
87 #define INCL_VIO | |
88 #define INCL_NLS | |
89 #define INCL_DOS | |
90 #define INCL_DEV | |
91 #define INCL_DOSERRORS | |
92 | |
1404
56f311dc23f6
Changes to get the library building with Watcom on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1329
diff
changeset
|
93 #ifdef __OS2__ |
56f311dc23f6
Changes to get the library building with Watcom on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1329
diff
changeset
|
94 # 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
|
95 # 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
|
96 # endif |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
97 #endif |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
98 |
543
8217ee5c254e
Get EMX compiling again.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
527
diff
changeset
|
99 #ifndef API |
8217ee5c254e
Get EMX compiling again.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
527
diff
changeset
|
100 #define API |
8217ee5c254e
Get EMX compiling again.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
527
diff
changeset
|
101 #endif |
8217ee5c254e
Get EMX compiling again.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
527
diff
changeset
|
102 |
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
|
103 #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
|
104 |
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 /* 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
|
106 * 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
|
107 */ |
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 #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
|
109 #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
|
110 #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
|
111 #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
|
112 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
|
113 { |
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 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
|
115 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
|
116 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
|
117 |
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 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
|
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 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
|
121 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
|
122 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
|
123 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
|
124 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
|
125 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
|
126 } |
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 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
|
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 #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
|
130 #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
|
131 |
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 |
3 | 133 #define msleep(a) DosSleep(a) |
134 | |
135 #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
|
136 #include "platform/dirent.h" |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
137 #include <sys/stat.h> |
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
138 #ifdef FD_SETSIZE |
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
139 #undef FD_SETSIZE |
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
140 #endif |
3 | 141 #define FD_SETSIZE 1024 |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
142 #endif /* __EMX__ */ |
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
143 |
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
144 #if defined(__EMX__) || defined(__WATCOMC__) |
3 | 145 #define strcasecmp stricmp |
146 #define strncasecmp strnicmp | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
147 #endif |
3 | 148 |
149 #ifndef OS2 | |
150 #define OS2 | |
151 #endif /* OS2 */ | |
152 | |
153 #include <os2.h> | |
154 | |
155 #ifndef BKS_TABBEDDIALOG | |
156 #define BKS_TABBEDDIALOG 0x0800 | |
571
828e6a66c5c5
Add dw_listbox_list_append()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
557
diff
changeset
|
157 #endif |
3 | 158 |
2244
a1ac35abd5fd
Make sure domain socket paths have a trailing DIRSEP... fixes an issue on Windows 10.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2239
diff
changeset
|
159 #define PIPEROOT "\\socket" |
3 | 160 #endif /* __EMX__ || __IBMC__ */ |
161 | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
162 #if defined(__OS2__) && (defined(__IBMC__) || defined(__WATCOMC__)) |
3 | 163 #define BSD_SELECT |
164 | |
165 #include <types.h> | |
166 #include <time.h> | |
167 #include <sys/stat.h> | |
168 #include <sys/select.h> | |
169 #include <sys/ioctl.h> | |
170 #include <direct.h> | |
171 #include <stdarg.h> | |
172 /* 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
|
173 #ifndef __WATCOMC__ |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
174 #include "platform/dirent.h" |
3 | 175 #endif |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
176 #endif |
3 | 177 |
178 /* Windows */ | |
179 #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
|
180 |
e0ea29c3d1eb
Fixed dw_window_pointer() so it works on Windows. Tried to fix the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
525
diff
changeset
|
181 #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
|
182 # 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
|
183 # define API _cdecl __declspec(dllexport) |
571
828e6a66c5c5
Add dw_listbox_list_append()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
557
diff
changeset
|
184 # else |
828e6a66c5c5
Add dw_listbox_list_append()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
557
diff
changeset
|
185 # define API _cdecl |
828e6a66c5c5
Add dw_listbox_list_append()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
557
diff
changeset
|
186 # 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
|
187 #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
|
188 |
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
|
189 #include <winsock2.h> |
3 | 190 #include <windows.h> |
191 #include <time.h> | |
192 #include <process.h> | |
193 #include <sys/stat.h> | |
571
828e6a66c5c5
Add dw_listbox_list_append()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
557
diff
changeset
|
194 |
3 | 195 #ifdef MSVC |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
196 #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
|
197 #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
|
198 #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
|
199 #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
|
200 #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
|
201 #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
|
202 #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
|
203 #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
|
204 #include <direct.h> |
3 | 205 #else |
206 #include <dir.h> | |
207 #include <dirent.h> | |
208 #endif | |
571
828e6a66c5c5
Add dw_listbox_list_append()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
557
diff
changeset
|
209 |
3 | 210 #include <stdarg.h> |
211 | |
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
|
212 /* 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
|
213 #if defined(__CYGWIN32__) |
3 | 214 #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
|
215 #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
|
216 #include <afunix.h> |
2244
a1ac35abd5fd
Make sure domain socket paths have a trailing DIRSEP... fixes an issue on Windows 10.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2239
diff
changeset
|
217 #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
|
218 #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
|
219 #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
|
220 #endif |
3 | 221 |
222 #if defined(_P_NOWAIT) && !defined(P_NOWAIT) | |
223 #define P_NOWAIT _P_NOWAIT | |
224 #endif | |
225 | |
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
|
226 #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
|
227 /* 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
|
228 # 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
|
229 # 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
|
230 # 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
|
231 # 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
|
232 # 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
|
233 # define unlink(a) _unlink(a) |
2170
d871f636b46e
Win: Add a few more forwarders for deprecated POSIX functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2160
diff
changeset
|
234 # define rmdir(a) _rmdir(a) |
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
|
235 # define close(a) _close(a) |
2170
d871f636b46e
Win: Add a few more forwarders for deprecated POSIX functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2160
diff
changeset
|
236 # define open(a, b) _open(a, b) |
d871f636b46e
Win: Add a few more forwarders for deprecated POSIX functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2160
diff
changeset
|
237 # define read(a, b, c) _read(a, b, c) |
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
|
238 # define fdopen(a, b) _fdopen(a, b) |
2170
d871f636b46e
Win: Add a few more forwarders for deprecated POSIX functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2160
diff
changeset
|
239 # define getcwd(a, b) _getcwd(a, b) |
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
|
240 # define chdir(a) _chdir(a) |
2170
d871f636b46e
Win: Add a few more forwarders for deprecated POSIX functions.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2160
diff
changeset
|
241 # define getpid() _getpid() |
1839
22225eb286e5
Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1715
diff
changeset
|
242 #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
|
243 # 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
|
244 #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
|
245 # 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
|
246 # 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
|
247 # 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
|
248 # 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
|
249 #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
|
250 #define msleep(a) Sleep(a) |
3 | 251 |
252 #endif /* WIN32 */ | |
253 | |
254 /* Everything else ;) */ | |
255 #include <stdio.h> | |
256 #ifdef HAVE_UNISTD_H | |
257 #include <unistd.h> | |
258 #endif /* HAVE_UNISTD_H */ | |
259 #ifdef HAVE_SYS_STAT_H | |
260 #include <sys/stat.h> | |
261 #endif | |
262 #include <stdlib.h> | |
263 #include <stddef.h> | |
264 #include <signal.h> | |
265 #include <fcntl.h> | |
266 | |
2226
2de088fb5dd4
Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2170
diff
changeset
|
267 #if !defined(_MSC_VER) |
1992
4bfcad4986ff
OS/2: Fix compilation error with Watcom C on OS/2.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1991
diff
changeset
|
268 #ifndef __WATCOMC__ |
3 | 269 #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
|
270 #endif |
3 | 271 #include <sys/socket.h> |
272 #include <sys/un.h> | |
273 #include <netinet/in.h> | |
274 #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
|
275 #ifndef __IBMC__ |
1323
209d7f5137f2
Cleaned up the compatibility library header.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
908
diff
changeset
|
276 #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
|
277 #endif |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
278 #if defined(__OS2__) && defined(RES_DEFAULT) |
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
279 #undef RES_DEFAULT |
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
280 #endif |
3 | 281 #include <stdarg.h> |
282 #include <string.h> | |
2226
2de088fb5dd4
Added some missing APIs from the template, and changes so it builds dwtest.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2170
diff
changeset
|
283 #endif /* !_MSC_VER */ |
41
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
284 #include <ctype.h> |
3 | 285 |
286 #ifndef _MAX_PATH | |
287 #define _MAX_PATH 255 | |
288 #endif | |
289 | |
290 /* IBM C doesn't allow "t" in the mode parameter | |
291 * because it violates the ANSI standard. | |
292 */ | |
293 #ifdef __IBMC__ | |
294 #define FOPEN_READ_TEXT "r" | |
295 #define FOPEN_WRITE_TEXT "w" | |
296 #define FOPEN_APPEND_TEXT "a" | |
297 #else | |
298 #define FOPEN_READ_TEXT "rt" | |
299 #define FOPEN_WRITE_TEXT "wt" | |
300 #define FOPEN_APPEND_TEXT "at" | |
301 #endif | |
302 #define FOPEN_READ_BINARY "rb" | |
303 #define FOPEN_WRITE_BINARY "wb" | |
304 #define FOPEN_APPEND_BINARY "ab" | |
305 | |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
306 #ifndef API |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
307 #define API |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
308 #endif |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
309 |
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
|
310 #ifndef PIPEROOT |
2244
a1ac35abd5fd
Make sure domain socket paths have a trailing DIRSEP... fixes an issue on Windows 10.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2239
diff
changeset
|
311 #define PIPEROOT "/tmp" |
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
|
312 #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
|
313 |
2244
a1ac35abd5fd
Make sure domain socket paths have a trailing DIRSEP... fixes an issue on Windows 10.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2239
diff
changeset
|
314 #define PIPENAME "%s%s" __TARGET__ "%d-%d" |
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
|
315 |
580
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
316 /* 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
|
317 * 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
|
318 * compiler support. |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
319 */ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
320 |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
321 #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
|
322 #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
|
323 #else |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
324 #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
|
325 #endif |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
326 |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
327 #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
|
328 #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
|
329 #else |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
330 #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
|
331 #endif |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
332 |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
333 #ifdef __IBMC__ |
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) soclose(a) |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
335 #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
|
336 #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
|
337 #else |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
338 #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
|
339 #endif |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
340 |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
341 #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
|
342 #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
|
343 #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
|
344 #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
|
345 #else |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
346 #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
|
347 #endif |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
348 |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
349 #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
|
350 #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
|
351 #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
|
352 #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
|
353 #else |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
354 #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
|
355 #endif |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
356 |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
357 #ifdef __IBMC__ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
358 #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
|
359 #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
|
360 #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
|
361 #else /* !WIN32 */ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
362 #define sockinit() |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
363 #endif |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
364 |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
365 #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
|
366 #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
|
367 #else /* !WIN32 */ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
368 #define sockshutdown() |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
369 #endif |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
370 |
2239
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
371 #define oldsockpipe(pipes) { \ |
580
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
372 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
|
373 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
|
374 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
|
375 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
|
376 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
|
377 if(he) \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
378 { \ |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
379 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
|
380 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
|
381 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
|
382 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
|
383 if ((tmpsock = socket(AF_INET, SOCK_STREAM, 0)) > -1 && bind(tmpsock, (struct sockaddr *)&server_addr, sizeof(server_addr)) > -1 && listen(tmpsock, 0) > -1) \ |
2239
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
384 { \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
385 memset(&listen_addr, 0, sizeof(listen_addr)); \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
386 getsockname(tmpsock, (struct sockaddr *)&listen_addr, &len); \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
387 server_addr.sin_family = AF_INET; \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
388 server_addr.sin_port = listen_addr.sin_port; \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
389 server_addr.sin_addr.s_addr = *((unsigned long *)he->h_addr); \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
390 if((pipes[1] = socket(AF_INET, SOCK_STREAM, 0)) > -1 && !connect(pipes[1], (struct sockaddr *)&server_addr, sizeof(server_addr))) \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
391 pipes[0] = accept(tmpsock, 0, 0); \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
392 } \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
393 if(tmpsock > -1) \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
394 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
|
395 } \ |
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
|
396 } |
2239
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
397 |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
398 #ifdef HAVE_PIPE |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
399 #define sockpipe(pipes) { if(pipe(pipes) < 0) pipes[0] = pipes[1] = -1; } |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
400 #elif !defined(NO_DOMAIN_SOCKETS) |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
401 #define sockpipe(pipes) { \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
402 struct sockaddr_un un; \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
403 int tmpsock = socket(AF_UNIX, SOCK_STREAM, 0); \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
404 pipes[0] = pipes[1] = -1; \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
405 if(tmpsock > -1 && (pipes[1] = socket(AF_UNIX, SOCK_STREAM, 0)) > -1) \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
406 { \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
407 memset(&un, 0, sizeof(un)); \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
408 un.sun_family=AF_UNIX; \ |
2244
a1ac35abd5fd
Make sure domain socket paths have a trailing DIRSEP... fixes an issue on Windows 10.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2239
diff
changeset
|
409 sprintf(un.sun_path, PIPENAME, PIPEROOT, DIRSEP, (int)getpid(), pipes[1]); \ |
2239
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
410 unlink(un.sun_path); \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
411 bind(tmpsock, (struct sockaddr *)&un, sizeof(un)); \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
412 listen(tmpsock, 0); \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
413 connect(pipes[1], (struct sockaddr *)&un, sizeof(un)); \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
414 pipes[0] = accept(tmpsock, 0, 0); \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
415 } else \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
416 oldsockpipe(pipes); \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
417 if(tmpsock > -1) \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
418 sockclose(tmpsock); \ |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
419 } |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
420 #else |
95ad22a4da2d
Bump version to 3.2 now that we are post 3.1 release.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
2226
diff
changeset
|
421 #define sockpipe(pipes) oldsockpipe(pipes) |
580
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
422 #endif |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
423 |
1329
19bfcdbab74e
Hopefully the last socklen_t change... OS/2 needs it too.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1328
diff
changeset
|
424 /* 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
|
425 #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
|
426 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
|
427 #endif |
03f0a57c9e87
Make sure socklen_t gets defined when building with Visual Studio.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1324
diff
changeset
|
428 |
1585
0576c5444587
Oops fallback dwstat didn't work quite right in that last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1584
diff
changeset
|
429 /* 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
|
430 #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
|
431 #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
|
432 #endif |
0576c5444587
Oops fallback dwstat didn't work quite right in that last commit.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1584
diff
changeset
|
433 |
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
|
434 /* 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
|
435 #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
|
436 #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
|
437 #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
|
438 |
1839
22225eb286e5
Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1715
diff
changeset
|
439 #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
|
440 #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
|
441 # undef mkdir |
22225eb286e5
Fixes for building with MINGW64 (specifically http://tdm-gcc.tdragon.net/).
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1715
diff
changeset
|
442 # 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
|
443 #endif |
1710
b217cf9161c7
Move some more platform specific code into dwcompat.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1695
diff
changeset
|
444 #endif |
b217cf9161c7
Move some more platform specific code into dwcompat.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1695
diff
changeset
|
445 |
580
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
446 #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
|
447 |
d7c338ac926a
Sweeping changes to the compatibility module, moved all socket code out
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
571
diff
changeset
|
448 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
|
449 int API makedir(char *path); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
450 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
|
451 #ifdef __MINGW32__ |
02a23143334c
Apparently Visual C's "long double" type is "double" for gcc...
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
1859
diff
changeset
|
452 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
|
453 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
|
454 #else |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
455 long double API drivesize(int drive); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
456 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
|
457 #endif |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
458 int API isdrive(int drive); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
459 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
|
460 FILE * API fsopen(char *path, char *modes); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
461 int API fsclose(FILE *fp); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
462 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
|
463 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
|
464 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
|
465 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
|
466 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
|
467 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
|
468 int API setpath(char *path); |
571
828e6a66c5c5
Add dw_listbox_list_append()
mhessling@81767d24-ef19-dc11-ae90-00e081727c95
parents:
557
diff
changeset
|
469 |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
470 #endif |