comparison src/s/msdos.h @ 14970:78a622f19f7f

(DATA_START, TEXT_START, TEXT_END, _NAIVE_DOS_REGS) (POSIX_SIGNALS): Define if DJGPP v2. (LIBS_SYSTEM, chdir, NO_MODE_T, TEXT_START, NO_MATHERR) (LOCALTIME_CACHE, tzset): Don't define if DJGPP v2.
author Richard M. Stallman <rms@gnu.org>
date Wed, 10 Apr 1996 03:48:14 +0000
parents ee40177f6c68
children 11a97fb4cb84
comparison
equal deleted inserted replaced
14969:ea072e2f75f8 14970:78a622f19f7f
42 #endif 42 #endif
43 43
44 #ifdef __GO32__ 44 #ifdef __GO32__
45 #ifndef __DJGPP__ 45 #ifndef __DJGPP__
46 #define __DJGPP__ 1 /* V2 defines __DJGPP__ == 2 */ 46 #define __DJGPP__ 1 /* V2 defines __DJGPP__ == 2 */
47 #else
48 You lose; /* Emacs for DOS must be compiled with DJGPP V1 */
49 #endif 47 #endif
50 #else 48 #else
51 You lose; /* Emacs for DOS must be compiled with DJGPP */ 49 You lose; /* Emacs for DOS must be compiled with DJGPP */
52 #endif 50 #endif
53 51
155 but they will run slower. */ 153 but they will run slower. */
156 154
157 #define _setjmp setjmp 155 #define _setjmp setjmp
158 #define _longjmp longjmp 156 #define _longjmp longjmp
159 157
158 #if __DJGPP__ < 2
159
160 #define NO_MODE_T 160 #define NO_MODE_T
161 161
162 /* New chdir () routine. */ 162 /* New chdir () routine.
163 DJGPP v2.0 and later doesn't need it because its chdir() does
164 set the drive itself. */
163 #ifdef chdir 165 #ifdef chdir
164 #undef chdir 166 #undef chdir
165 #endif 167 #endif
166 #define chdir sys_chdir 168 #define chdir sys_chdir
167 169
168 #define LIBS_SYSTEM -lpc 170 #define LIBS_SYSTEM -lpc /* isn't required in DJGPP v2.0, either */
171
172 #endif /* __DJGPP__ < 2 */
173
174 #if __DJGPP__ > 1
175
176 #define DATA_START (&etext + 1)
177 #define TEXT_START &start
178 #define TEXT_END &etext
179
180 #define _NAIVE_DOS_REGS
181
182 #else /* not __DJGPP__ > 1 */
169 183
170 /* This somehow needs to be defined even though we use COFF. */ 184 /* This somehow needs to be defined even though we use COFF. */
171 #define TEXT_START -1 185 #define TEXT_START -1
186
187 #endif /* not __DJGPP__ > 1 */
172 188
173 #define ORDINARY_LINK 189 #define ORDINARY_LINK
174 190
175 /* command.com does not understand `...` so we define this. */ 191 /* command.com does not understand `...` so we define this. */
176 #define LIB_GCC -Lgcc 192 #define LIB_GCC -Lgcc
178 #define SEPCHAR ';' 194 #define SEPCHAR ';'
179 195
180 #define NULL_DEVICE "nul" 196 #define NULL_DEVICE "nul"
181 #define EXEC_SUFFIXES ".exe:.com:.bat:" 197 #define EXEC_SUFFIXES ".exe:.com:.bat:"
182 198
199 #if __DJGPP__ < 2
183 #define O_RDONLY 0x0001 200 #define O_RDONLY 0x0001
184 #define O_WRONLY 0x0002 201 #define O_WRONLY 0x0002
185 #define O_RDWR 0x0004 202 #define O_RDWR 0x0004
186 #define O_CREAT 0x0100 203 #define O_CREAT 0x0100
187 #define O_TRUNC 0x0200 204 #define O_TRUNC 0x0200
188 #define O_EXCL 0x0400 205 #define O_EXCL 0x0400
189 #define O_APPEND 0x0800 206 #define O_APPEND 0x0800
190 #define O_TEXT 0x4000 207 #define O_TEXT 0x4000
191 #define O_BINARY 0x8000 208 #define O_BINARY 0x8000
209 #define NO_MATHERR
210 #endif
192 211
193 #define HAVE_INVERSE_HYPERBOLIC 212 #define HAVE_INVERSE_HYPERBOLIC
194 #define FLOAT_CHECK_DOMAIN 213 #define FLOAT_CHECK_DOMAIN
195 #define NO_MATHERR
196 214
197 /* When $TERM is "internal" then this is substituted: */ 215 /* When $TERM is "internal" then this is substituted: */
198 #define INTERNAL_TERMINAL "pc|bios|IBM PC with colour display:\ 216 #define INTERNAL_TERMINAL "pc|bios|IBM PC with colour display:\
199 :co#80:li#25:km:ms:cm=<CM>:cl=<CL>:ce=<CE>:" 217 :co#80:li#25:km:ms:cm=<CM>:cl=<CL>:ce=<CE>:"
200 218
208 /* We'll support either convention on MSDOG. */ 226 /* We'll support either convention on MSDOG. */
209 #define IS_DIRECTORY_SEP(_c_) ((_c_) == '/' || (_c_) == '\\') 227 #define IS_DIRECTORY_SEP(_c_) ((_c_) == '/' || (_c_) == '\\')
210 #define IS_ANY_SEP(_c_) (IS_DIRECTORY_SEP (_c_) || IS_DEVICE_SEP (_c_)) 228 #define IS_ANY_SEP(_c_) (IS_DIRECTORY_SEP (_c_) || IS_DEVICE_SEP (_c_))
211 229
212 /* Call init_gettimeofday when TZ changes. */ 230 /* Call init_gettimeofday when TZ changes. */
231 #if __DJGPP__ < 2
213 #define LOCALTIME_CACHE 232 #define LOCALTIME_CACHE
214 #define tzset init_gettimeofday 233 #define tzset init_gettimeofday
234 #endif
215 235
216 /* bcopy under djgpp is quite safe */ 236 /* bcopy under djgpp is quite safe */
217 #define GAP_USE_BCOPY 237 #define GAP_USE_BCOPY
218 #define BCOPY_UPWARD_SAFE 1 238 #define BCOPY_UPWARD_SAFE 1
219 #define BCOPY_DOWNWARD_SAFE 1 239 #define BCOPY_DOWNWARD_SAFE 1
220 240
221 /* Mode line description of a buffer's type. */ 241 /* Mode line description of a buffer's type. */
222 #define MODE_LINE_BINARY_TEXT(buf) (NILP(buf->buffer_file_type) ? "T" : "B") 242 #define MODE_LINE_BINARY_TEXT(buf) (NILP(buf->buffer_file_type) ? "T" : "B")
243
244 /* Do we have POSIX signals? */
245 #if __DJGPP__ > 1
246 #define POSIX_SIGNALS
247 #endif
223 248
224 /* We have (the code to control) a mouse. */ 249 /* We have (the code to control) a mouse. */
225 #define HAVE_MOUSE 250 #define HAVE_MOUSE
226 251
227 /* We canuse mouse menus. */ 252 /* We canuse mouse menus. */