Mercurial > dwindows
annotate compat.h @ 456:935436731b41
Hybrid fix, seems the last change illiminated some important code that
dealt with varying padding sizes in the opposite direction of the box.
This readds that code but optimizes it and includes the groupbox
calculations that were already present in the previous code path.
This fix will be added to the OS/2 tree as well pending testing of this
new code path.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Wed, 25 Jun 2003 03:39:44 +0000 |
parents | f225f16bebbd |
children | 2ff26b697877 |
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 | |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
64 #if defined(__IBMC__) && !defined(API) |
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__ | |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
71 #include <dirent.h> |
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
72 #include <sys/stat.h> |
28
cd715f9036c0
Added HAVE_PIPE define for EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
24
diff
changeset
|
73 #define HAVE_PIPE |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
74 #ifdef FD_SETSIZE |
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
75 #undef FD_SETSIZE |
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
76 #endif |
3 | 77 #define FD_SETSIZE 1024 |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
78 #endif /* __EMX__ */ |
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
79 |
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
80 #if defined(__EMX__) || defined(__WATCOMC__) |
3 | 81 #define strcasecmp stricmp |
82 #define strncasecmp strnicmp | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
83 #endif |
3 | 84 |
85 #ifndef OS2 | |
86 #define OS2 | |
87 #endif /* OS2 */ | |
88 | |
89 #include <os2.h> | |
90 | |
91 #ifndef BKS_TABBEDDIALOG | |
92 #define BKS_TABBEDDIALOG 0x0800 | |
93 #endif | |
94 | |
41
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
95 #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
|
96 #define TPIPENAME "\\socket\\" __TARGET__ "%d" |
3 | 97 #else |
41
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
98 #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
|
99 #define TPIPENAME "/tmp/" __TARGET__ "%d" |
3 | 100 #endif /* __EMX__ || __IBMC__ */ |
101 | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
102 #if defined(__OS2__) && (defined(__IBMC__) || defined(__WATCOMC__)) |
3 | 103 #define BSD_SELECT |
104 | |
105 #include <types.h> | |
106 #include <time.h> | |
107 #include <sys/stat.h> | |
108 #include <sys/select.h> | |
109 #include <sys/ioctl.h> | |
110 #include <direct.h> | |
111 #include <stdarg.h> | |
112 /* 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
|
113 #ifndef __WATCOMC__ |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
114 #include "platform/dirent.h" |
3 | 115 #endif |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
116 #endif |
3 | 117 |
118 /* Windows */ | |
119 #if defined(__WIN32__) || defined(WINNT) | |
120 #include <windows.h> | |
121 #include <winsock.h> | |
122 #include <time.h> | |
123 #include <process.h> | |
124 #include <sys/stat.h> | |
125 #ifdef MSVC | |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
126 #include "platform/dirent.h" |
3 | 127 #else |
128 #include <dir.h> | |
129 #include <dirent.h> | |
130 #endif | |
131 #include <stdarg.h> | |
132 | |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
133 #if defined(MSVC) && !defined(API) |
177
e3dd5c765775
Fixes for Windows.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
174
diff
changeset
|
134 #define API _cdecl |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
135 #endif |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
136 |
3 | 137 #if defined(__CYGWIN32__) || defined(__MINGW32__) |
138 #include <sys/un.h> | |
139 #endif /* __CYGWIN32__ || __MINGW32__ */ | |
140 | |
141 #ifndef __CYGWIN32__ | |
142 #define NO_DOMAIN_SOCKETS | |
143 #endif /* __CYGWIN32__ */ | |
144 | |
145 #if defined(_P_NOWAIT) && !defined(P_NOWAIT) | |
146 #define P_NOWAIT _P_NOWAIT | |
147 #endif | |
148 | |
149 #define strcasecmp stricmp | |
150 #define strncasecmp strnicmp | |
151 #define msleep Sleep | |
152 | |
153 #endif /* WIN32 */ | |
154 | |
155 /* Everything else ;) */ | |
156 #include <stdio.h> | |
157 #ifdef HAVE_UNISTD_H | |
158 #include <unistd.h> | |
159 #endif /* HAVE_UNISTD_H */ | |
160 #ifdef HAVE_SYS_STAT_H | |
161 #include <sys/stat.h> | |
162 #endif | |
163 #include <stdlib.h> | |
164 #include <stddef.h> | |
165 #include <signal.h> | |
166 #include <fcntl.h> | |
167 | |
168 #if !defined(__WIN32__) && !defined(WINNT) | |
169 #include <sys/time.h> | |
170 #include <sys/socket.h> | |
171 #include <sys/un.h> | |
172 #include <netinet/in.h> | |
173 #include <netdb.h> | |
174 #include <arpa/nameser.h> | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
175 #if defined(__OS2__) && defined(RES_DEFAULT) |
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
176 #undef RES_DEFAULT |
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
177 #endif |
3 | 178 #include <resolv.h> |
179 #include <stdarg.h> | |
180 #include <string.h> | |
181 #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
|
182 #include <ctype.h> |
3 | 183 |
184 #ifndef _MAX_PATH | |
185 #define _MAX_PATH 255 | |
186 #endif | |
187 | |
188 /* IBM C doesn't allow "t" in the mode parameter | |
189 * because it violates the ANSI standard. | |
190 */ | |
191 #ifdef __IBMC__ | |
192 #define FOPEN_READ_TEXT "r" | |
193 #define FOPEN_WRITE_TEXT "w" | |
194 #define FOPEN_APPEND_TEXT "a" | |
195 #else | |
196 #define FOPEN_READ_TEXT "rt" | |
197 #define FOPEN_WRITE_TEXT "wt" | |
198 #define FOPEN_APPEND_TEXT "at" | |
199 #endif | |
200 #define FOPEN_READ_BINARY "rb" | |
201 #define FOPEN_WRITE_BINARY "wb" | |
202 #define FOPEN_APPEND_BINARY "ab" | |
203 | |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
204 #ifndef API |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
205 #define API |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
206 #endif |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
207 |
3 | 208 /* Compatibility layer for IBM C/Winsock */ |
174
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
209 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
|
210 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
|
211 int API sockclose(int a); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
212 int API socksprintf(int fd, char *format, ...); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
213 int API sockpipe(int *pipes); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
214 void API sockinit(void); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
215 void API sockshutdown(void); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
216 int API makedir(char *path); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
217 void API nonblock(int fd); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
218 void API block(int fd); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
219 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
|
220 long double API drivesize(int drive); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
221 long double API drivefree(int drive); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
222 int API isdrive(int drive); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
223 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
|
224 FILE * API fsopen(char *path, char *modes); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
225 int API fsclose(FILE *fp); |
75bf3051235f
Fixes so you can mix compilers.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
172
diff
changeset
|
226 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
|
227 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
|
228 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
|
229 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
|
230 #endif |