Mercurial > dwindows
annotate compat.h @ 172:0fc45e386376
Get Dynamic Windows building with Watcom.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Sun, 01 Dec 2002 11:11:41 +0000 |
parents | a5da1ac53b34 |
children | 75bf3051235f |
rev | line source |
---|---|
3 | 1 /* $Id$ */ |
2 | |
3 /* This header includes and defines everything needed for a given OS/compiler */ | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
4 #ifdef __UNIX__ |
3 | 5 #include "config.h" |
6 | |
41
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
7 #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
|
8 #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
|
9 void msleep(long period); |
3 | 10 #endif /* Unix */ |
11 | |
41
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
12 #ifndef __TARGET__ |
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
13 #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
|
14 #endif |
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
15 |
3 | 16 #include <sys/types.h> |
17 #if HAVE_DIRENT_H | |
18 #include <dirent.h> | |
19 #define NAMLEN(dirent) strlen((dirent)->d_name) | |
20 #else | |
21 #define dirent direct | |
22 #define NAMLEN(dirent) (dirent)->d_namlen | |
23 #if HAVE_SYS_NDIR_H | |
24 #include <sys/ndir.h> | |
25 #endif /* HAVE_SYS_NDIR_H */ | |
26 #if HAVE_SYS_DIR_H | |
27 #include <sys/dir.h> | |
28 #endif /* HAVE_SYS_DIR_H */ | |
29 #if HAVE_NDIR_H | |
30 #include <ndir.h> | |
31 #endif /* HAVE_NDIR_H */ | |
32 #endif /* HAVE_DIRENT_H */ | |
33 | |
34 #ifdef DIRSEP | |
35 #undef DIRSEP | |
36 #endif | |
37 | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
38 #if defined(__EMX__) || defined(__OS2__) || defined(__WIN32__) || defined(WINNT) |
3 | 39 #include <io.h> |
40 #include <process.h> | |
41 | |
42 #define DIRSEP "\\" | |
43 #define INIDIR "." | |
44 #define TYPDIR "." | |
45 #else | |
46 #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
|
47 #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
|
48 #define TYPDIR "/usr/local/" __TARGET__ |
3 | 49 #endif |
50 | |
51 /* OS/2 */ | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
52 #if defined(__EMX__) || defined(__OS2__) |
3 | 53 #define INCL_WIN |
54 #define INCL_GPI | |
55 #define INCL_VIO | |
56 #define INCL_NLS | |
57 #define INCL_DOS | |
58 #define INCL_DEV | |
59 #define INCL_DOSERRORS | |
60 | |
61 #define msleep(a) DosSleep(a) | |
62 | |
63 #ifdef __EMX__ | |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
64 #include <dirent.h> |
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
65 #include <sys/stat.h> |
28
cd715f9036c0
Added HAVE_PIPE define for EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
24
diff
changeset
|
66 #define HAVE_PIPE |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
67 #ifdef FD_SETSIZE |
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
68 #undef FD_SETSIZE |
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
69 #endif |
3 | 70 #define FD_SETSIZE 1024 |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
71 #endif /* __EMX__ */ |
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
72 |
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
73 #if defined(__EMX__) || defined(__WATCOMC__) |
3 | 74 #define strcasecmp stricmp |
75 #define strncasecmp strnicmp | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
76 #endif |
3 | 77 |
78 #ifndef OS2 | |
79 #define OS2 | |
80 #endif /* OS2 */ | |
81 | |
82 #include <os2.h> | |
83 | |
84 #ifndef BKS_TABBEDDIALOG | |
85 #define BKS_TABBEDDIALOG 0x0800 | |
86 #endif | |
87 | |
41
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
88 #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
|
89 #define TPIPENAME "\\socket\\" __TARGET__ "%d" |
3 | 90 #else |
41
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
91 #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
|
92 #define TPIPENAME "/tmp/" __TARGET__ "%d" |
3 | 93 #endif /* __EMX__ || __IBMC__ */ |
94 | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
95 #if defined(__OS2__) && (defined(__IBMC__) || defined(__WATCOMC__)) |
3 | 96 #define BSD_SELECT |
97 | |
98 #include <types.h> | |
99 #include <time.h> | |
100 #include <sys/stat.h> | |
101 #include <sys/select.h> | |
102 #include <sys/ioctl.h> | |
103 #include <direct.h> | |
104 #include <stdarg.h> | |
105 /* 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
|
106 #ifndef __WATCOMC__ |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
107 #include "platform/dirent.h" |
3 | 108 #endif |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
109 #endif |
3 | 110 |
111 /* Windows */ | |
112 #if defined(__WIN32__) || defined(WINNT) | |
113 #include <windows.h> | |
114 #include <winsock.h> | |
115 #include <time.h> | |
116 #include <process.h> | |
117 #include <sys/stat.h> | |
118 #ifdef MSVC | |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
119 #include "platform/dirent.h" |
3 | 120 #else |
121 #include <dir.h> | |
122 #include <dirent.h> | |
123 #endif | |
124 #include <stdarg.h> | |
125 | |
126 #if defined(__CYGWIN32__) || defined(__MINGW32__) | |
127 #include <sys/un.h> | |
128 #endif /* __CYGWIN32__ || __MINGW32__ */ | |
129 | |
130 #ifndef __CYGWIN32__ | |
131 #define NO_DOMAIN_SOCKETS | |
132 #endif /* __CYGWIN32__ */ | |
133 | |
134 #if defined(_P_NOWAIT) && !defined(P_NOWAIT) | |
135 #define P_NOWAIT _P_NOWAIT | |
136 #endif | |
137 | |
138 #define strcasecmp stricmp | |
139 #define strncasecmp strnicmp | |
140 #define msleep Sleep | |
141 | |
142 #endif /* WIN32 */ | |
143 | |
144 /* Everything else ;) */ | |
145 #include <stdio.h> | |
146 #ifdef HAVE_UNISTD_H | |
147 #include <unistd.h> | |
148 #endif /* HAVE_UNISTD_H */ | |
149 #ifdef HAVE_SYS_STAT_H | |
150 #include <sys/stat.h> | |
151 #endif | |
152 #include <stdlib.h> | |
153 #include <stddef.h> | |
154 #include <signal.h> | |
155 #include <fcntl.h> | |
156 | |
157 #if !defined(__WIN32__) && !defined(WINNT) | |
158 #include <sys/time.h> | |
159 #include <sys/socket.h> | |
160 #include <sys/un.h> | |
161 #include <netinet/in.h> | |
162 #include <netdb.h> | |
163 #include <arpa/nameser.h> | |
172
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
164 #if defined(__OS2__) && defined(RES_DEFAULT) |
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
165 #undef RES_DEFAULT |
0fc45e386376
Get Dynamic Windows building with Watcom.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
101
diff
changeset
|
166 #endif |
3 | 167 #include <resolv.h> |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
168 #if defined(STDC_HEADERS) || defined(__EMX__) |
3 | 169 #include <stdarg.h> |
170 #include <string.h> | |
171 #endif /* STDC_HEADERS */ | |
172 #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
|
173 #include <ctype.h> |
3 | 174 |
175 #ifndef _MAX_PATH | |
176 #define _MAX_PATH 255 | |
177 #endif | |
178 | |
179 /* IBM C doesn't allow "t" in the mode parameter | |
180 * because it violates the ANSI standard. | |
181 */ | |
182 #ifdef __IBMC__ | |
183 #define FOPEN_READ_TEXT "r" | |
184 #define FOPEN_WRITE_TEXT "w" | |
185 #define FOPEN_APPEND_TEXT "a" | |
186 #else | |
187 #define FOPEN_READ_TEXT "rt" | |
188 #define FOPEN_WRITE_TEXT "wt" | |
189 #define FOPEN_APPEND_TEXT "at" | |
190 #endif | |
191 #define FOPEN_READ_BINARY "rb" | |
192 #define FOPEN_WRITE_BINARY "wb" | |
193 #define FOPEN_APPEND_BINARY "ab" | |
194 | |
195 /* Compatibility layer for IBM C/Winsock */ | |
196 int sockread (int a, void *b, int c, int d); | |
197 int sockwrite (int a, void *b, int c, int d); | |
198 int sockclose(int a); | |
199 int socksprintf(int fd, char *format, ...); | |
200 int sockpipe(int *pipes); | |
201 void sockinit(void); | |
202 void sockshutdown(void); | |
203 int makedir(char *path); | |
204 void nonblock(int fd); | |
41
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
205 void block(int fd); |
53
8add9a616d0e
Added a log filename parameter to setfileinfo().
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
41
diff
changeset
|
206 void setfileinfo(char *filename, char *url, char *logfile); |
101
a5da1ac53b34
Use long double instead of long long for drivesize and drivefree.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
100
diff
changeset
|
207 long double drivesize(int drive); |
a5da1ac53b34
Use long double instead of long long for drivesize and drivefree.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
100
diff
changeset
|
208 long double drivefree(int drive); |
3 | 209 int isdrive(int drive); |
41
af0a78aa0d45
More updates, and a more comprehensive unix install scheme. Use target
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
36
diff
changeset
|
210 void getfsname(int drive, char *buf, int len); |
3 | 211 FILE *fsopen(char *path, char *modes); |
212 int fsclose(FILE *fp); | |
213 char *fsgets(char *str, int size, FILE *stream); | |
24
d9e87e8bcf1d
Updated dynamic windows to build with EMX.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
3
diff
changeset
|
214 int fsseek(FILE *stream, long offset, int whence); |
72
ab77a22a2a36
Added localization APIs as well as some miscellaneous bug fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
62
diff
changeset
|
215 int locale_init(char *filename, int my_locale); |
ab77a22a2a36
Added localization APIs as well as some miscellaneous bug fixes.
bsmith@81767d24-ef19-dc11-ae90-00e081727c95
parents:
62
diff
changeset
|
216 char *locale_string(char *default_text, int message); |
3 | 217 |