Mercurial > dwindows
annotate compat.h @ 535:b0b5b880513a
Don't reverse packing on vertical boxes to compensate for the inverted
Y-axis on OS/2. Instead this should be dealt with in the layout code
taking into account the size of the box the items are sitting on.
This new code mostly works, but has some problems.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Wed, 24 Mar 2004 00:05:39 +0000 |
parents | e0ea29c3d1eb |
children | 8217ee5c254e |
rev | line source |
---|---|
3 | 1 /* $Id$ */ |
2 | |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
3 #ifndef _COMPAT_H |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
4 #define _COMPAT_H |
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__) |
3 | 8 #include "config.h" |
9 | |
41
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
10 #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
|
11 #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
|
12 void msleep(long period); |
3 | 13 #endif /* Unix */ |
14 | |
41
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
15 #ifndef __TARGET__ |
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
16 #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
|
17 #endif |
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
18 |
3 | 19 #include <sys/types.h> |
20 #if HAVE_DIRENT_H | |
21 #include <dirent.h> | |
22 #define NAMLEN(dirent) strlen((dirent)->d_name) | |
23 #else | |
24 #define dirent direct | |
25 #define NAMLEN(dirent) (dirent)->d_namlen | |
26 #if HAVE_SYS_NDIR_H | |
27 #include <sys/ndir.h> | |
28 #endif /* HAVE_SYS_NDIR_H */ | |
29 #if HAVE_SYS_DIR_H | |
30 #include <sys/dir.h> | |
31 #endif /* HAVE_SYS_DIR_H */ | |
32 #if HAVE_NDIR_H | |
33 #include <ndir.h> | |
34 #endif /* HAVE_NDIR_H */ | |
35 #endif /* HAVE_DIRENT_H */ | |
36 | |
37 #ifdef DIRSEP | |
38 #undef DIRSEP | |
39 #endif | |
40 | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
41 #if defined(__EMX__) || defined(__OS2__) || defined(__WIN32__) || defined(WINNT) |
3 | 42 #include <io.h> |
43 #include <process.h> | |
44 | |
45 #define DIRSEP "\\" | |
46 #define INIDIR "." | |
47 #define TYPDIR "." | |
48 #else | |
49 #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
|
50 #define INIDIR "~/." __TARGET__ |
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
51 #define TYPDIR "/usr/local/" __TARGET__ |
3 | 52 #endif |
53 | |
54 /* OS/2 */ | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
55 #if defined(__EMX__) || defined(__OS2__) |
3 | 56 #define INCL_WIN |
57 #define INCL_GPI | |
58 #define INCL_VIO | |
59 #define INCL_NLS | |
60 #define INCL_DOS | |
61 #define INCL_DEV | |
62 #define INCL_DOSERRORS | |
63 | |
525
2ff26b697877
Fixes for building with Innotek GCC. Will have to check for regressions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
433
diff
changeset
|
64 #if (defined(__IBMC__) || defined(_System)) && !defined(API) |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
65 #define API _System |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
66 #endif |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
67 |
3 | 68 #define msleep(a) DosSleep(a) |
69 | |
70 #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
|
71 #ifdef _System |
2ff26b697877
Fixes for building with Innotek GCC. Will have to check for regressions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
433
diff
changeset
|
72 #include "platform/dirent.h" |
2ff26b697877
Fixes for building with Innotek GCC. Will have to check for regressions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
433
diff
changeset
|
73 #else |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
74 #include <dirent.h> |
525
2ff26b697877
Fixes for building with Innotek GCC. Will have to check for regressions
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
433
diff
changeset
|
75 #endif |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
76 #include <sys/stat.h> |
28
cd715f9036c0
Added HAVE_PIPE define for EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
24
diff
changeset
|
77 #define HAVE_PIPE |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
78 #ifdef FD_SETSIZE |
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
79 #undef FD_SETSIZE |
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
80 #endif |
3 | 81 #define FD_SETSIZE 1024 |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
82 #endif /* __EMX__ */ |
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
83 |
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
84 #if defined(__EMX__) || defined(__WATCOMC__) |
3 | 85 #define strcasecmp stricmp |
86 #define strncasecmp strnicmp | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
87 #endif |
3 | 88 |
89 #ifndef OS2 | |
90 #define OS2 | |
91 #endif /* OS2 */ | |
92 | |
93 #include <os2.h> | |
94 | |
95 #ifndef BKS_TABBEDDIALOG | |
96 #define BKS_TABBEDDIALOG 0x0800 | |
97 #endif | |
98 | |
41
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
99 #define PIPENAME "\\socket\\" __TARGET__ "%d" |
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
100 #define TPIPENAME "\\socket\\" __TARGET__ "%d" |
3 | 101 #else |
41
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
102 #define PIPENAME "/tmp/" __TARGET__ "%d" |
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
103 #define TPIPENAME "/tmp/" __TARGET__ "%d" |
3 | 104 #endif /* __EMX__ || __IBMC__ */ |
105 | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
106 #if defined(__OS2__) && (defined(__IBMC__) || defined(__WATCOMC__)) |
3 | 107 #define BSD_SELECT |
108 | |
109 #include <types.h> | |
110 #include <time.h> | |
111 #include <sys/stat.h> | |
112 #include <sys/select.h> | |
113 #include <sys/ioctl.h> | |
114 #include <direct.h> | |
115 #include <stdarg.h> | |
116 /* 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
|
117 #ifndef __WATCOMC__ |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
118 #include "platform/dirent.h" |
3 | 119 #endif |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
120 #endif |
3 | 121 |
122 /* Windows */ | |
123 #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
|
124 |
e0ea29c3d1eb
Fixed dw_window_pointer() so it works on Windows. Tried to fix the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
525
diff
changeset
|
125 #if defined(MSVC) && !defined(API) |
e0ea29c3d1eb
Fixed dw_window_pointer() so it works on Windows. Tried to fix the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
525
diff
changeset
|
126 #define API _cdecl |
e0ea29c3d1eb
Fixed dw_window_pointer() so it works on Windows. Tried to fix the
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
525
diff
changeset
|
127 #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
|
128 |
3 | 129 #include <windows.h> |
130 #include <winsock.h> | |
131 #include <time.h> | |
132 #include <process.h> | |
133 #include <sys/stat.h> | |
134 #ifdef MSVC | |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
135 #include "platform/dirent.h" |
3 | 136 #else |
137 #include <dir.h> | |
138 #include <dirent.h> | |
139 #endif | |
140 #include <stdarg.h> | |
141 | |
142 #if defined(__CYGWIN32__) || defined(__MINGW32__) | |
143 #include <sys/un.h> | |
144 #endif /* __CYGWIN32__ || __MINGW32__ */ | |
145 | |
146 #ifndef __CYGWIN32__ | |
147 #define NO_DOMAIN_SOCKETS | |
148 #endif /* __CYGWIN32__ */ | |
149 | |
150 #if defined(_P_NOWAIT) && !defined(P_NOWAIT) | |
151 #define P_NOWAIT _P_NOWAIT | |
152 #endif | |
153 | |
154 #define strcasecmp stricmp | |
155 #define strncasecmp strnicmp | |
156 #define msleep Sleep | |
157 | |
158 #endif /* WIN32 */ | |
159 | |
160 /* Everything else ;) */ | |
161 #include <stdio.h> | |
162 #ifdef HAVE_UNISTD_H | |
163 #include <unistd.h> | |
164 #endif /* HAVE_UNISTD_H */ | |
165 #ifdef HAVE_SYS_STAT_H | |
166 #include <sys/stat.h> | |
167 #endif | |
168 #include <stdlib.h> | |
169 #include <stddef.h> | |
170 #include <signal.h> | |
171 #include <fcntl.h> | |
172 | |
173 #if !defined(__WIN32__) && !defined(WINNT) | |
174 #include <sys/time.h> | |
175 #include <sys/socket.h> | |
176 #include <sys/un.h> | |
177 #include <netinet/in.h> | |
178 #include <netdb.h> | |
179 #include <arpa/nameser.h> | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
180 #if defined(__OS2__) && defined(RES_DEFAULT) |
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
181 #undef RES_DEFAULT |
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
182 #endif |
3 | 183 #include <resolv.h> |
184 #include <stdarg.h> | |
185 #include <string.h> | |
186 #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
|
187 #include <ctype.h> |
3 | 188 |
189 #ifndef _MAX_PATH | |
190 #define _MAX_PATH 255 | |
191 #endif | |
192 | |
193 /* IBM C doesn't allow "t" in the mode parameter | |
194 * because it violates the ANSI standard. | |
195 */ | |
196 #ifdef __IBMC__ | |
197 #define FOPEN_READ_TEXT "r" | |
198 #define FOPEN_WRITE_TEXT "w" | |
199 #define FOPEN_APPEND_TEXT "a" | |
200 #else | |
201 #define FOPEN_READ_TEXT "rt" | |
202 #define FOPEN_WRITE_TEXT "wt" | |
203 #define FOPEN_APPEND_TEXT "at" | |
204 #endif | |
205 #define FOPEN_READ_BINARY "rb" | |
206 #define FOPEN_WRITE_BINARY "wb" | |
207 #define FOPEN_APPEND_BINARY "ab" | |
208 | |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
209 #ifndef API |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
210 #define API |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
211 #endif |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
212 |
3 | 213 /* Compatibility layer for IBM C/Winsock */ |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
214 int API sockread (int a, void *b, int c, int d); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
215 int API sockwrite (int a, void *b, int c, int d); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
216 int API sockclose(int a); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
217 int API socksprintf(int fd, char *format, ...); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
218 int API sockpipe(int *pipes); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
219 void API sockinit(void); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
220 void API sockshutdown(void); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
221 int API makedir(char *path); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
222 void API nonblock(int fd); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
223 void API block(int fd); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
224 void API setfileinfo(char *filename, char *url, char *logfile); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
225 long double API drivesize(int drive); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
226 long double API drivefree(int drive); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
227 int API isdrive(int drive); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
228 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
|
229 FILE * API fsopen(char *path, char *modes); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
230 int API fsclose(FILE *fp); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
231 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
|
232 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
|
233 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
|
234 char * API locale_string(char *default_text, int message); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
235 #endif |