comparison src/s/msdos.h @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children 0132846995bd
comparison
equal deleted inserted replaced
-1:000000000000 0:376386a54a3c
1 /* System description file for MS-DOS
2
3 Copyright (C) 1993 Free Software Foundation, Inc.
4
5 This file is part of GNU Emacs.
6
7 GNU Emacs is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2, or (at your option)
10 any later version.
11
12 GNU Emacs is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with XEmacs; see the file COPYING. If not, write to
19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20 Boston, MA 02111-1307, USA. */
21
22 /* Synched up with: FSF 19.31. */
23
24 /* Note: lots of stuff here was taken from s-msdos.h in demacs. */
25
26
27 /*
28 * Define symbols to identify the version of Unix this is.
29 * Define all the symbols that apply correctly.
30 */
31
32 /* #define UNIPLUS */
33 /* #define USG5 */
34 /* #define USG */
35 /* #define HPUX */
36 /* #define UMAX */
37 /* #define BSD4_1 */
38 /* #define BSD4_2 */
39 /* #define BSD4_3 */
40 /* #define BSD */
41 /* #define VMS */
42 #ifndef MSDOS
43 #define MSDOS
44 #endif
45
46 #ifdef __GO32__
47 #ifndef __DJGPP__
48 #define __DJGPP__ 1 /* V2 defines __DJGPP__ == 2 */
49 #endif
50 #else
51 You lose; /* Emacs for DOS must be compiled with DJGPP */
52 #endif
53
54 #define DOS_NT /* MSDOS or WINDOWSNT */
55 #undef BSD
56 #undef VMS
57
58 /* SYSTEM_TYPE should indicate the kind of system you are using.
59 It sets the Lisp variable system-type. */
60
61 #define SYSTEM_TYPE "ms-dos"
62
63 #define SYMS_SYSTEM syms_of_dosfns();syms_of_msdos()
64
65 /* Letter to use in finding device name of first pty,
66 if system supports pty's. 'a' means it is /dev/ptya0 */
67
68 /* #define FIRST_PTY_LETTER 'a' */
69
70 /*
71 * Define HAVE_PTYS if the system supports pty devices.
72 */
73
74 /* #define HAVE_PTYS */
75
76 /* MSDOS has dirent.h but doesn't behave otherwise like the SYSV
77 directory functions. We have special tests for this in
78 sysdir.h. */
79
80 #undef SYSV_SYSTEM_DIR
81
82 /* Define this is the compiler understands `volatile'. */
83 #define HAVE_VOLATILE
84
85 #define NO_SUBPROCESSES
86
87 /* If your system uses COFF (Common Object File Format) then define the
88 preprocessor symbol "COFF". */
89
90 #define COFF
91
92 /* define MAIL_USE_FLOCK if the mailer uses flock
93 to interlock access to /usr/spool/mail/$USER.
94 The alternative is that a lock file named
95 /usr/spool/mail/$USER.lock. */
96
97 /* #define MAIL_USE_FLOCK */
98
99 /* Here, on a separate page, add any special hacks needed
100 to make Emacs work on this system. For example,
101 you might define certain system call names that don't
102 exist on your system, or that do different things on
103 your system and must be used only through an encapsulation
104 (Which you should place, by convention, in sysdep.c). */
105
106 /* Avoid incompatibilities between gmalloc.c and system header files
107 in how to declare valloc. */
108 #define GMALLOC_INHIBIT_VALLOC
109
110 /* setjmp and longjmp can safely replace _setjmp and _longjmp,
111 but they will run slower. */
112
113 #define _setjmp setjmp
114 #define _longjmp longjmp
115
116 #if __DJGPP__ < 2
117
118 #define NO_MODE_T
119
120 /* New chdir () routine.
121 DJGPP v2.0 and later doesn't need it because its chdir() does
122 set the drive itself. */
123 #ifdef chdir
124 #undef chdir
125 #endif
126 #define chdir sys_chdir
127
128 #define LIBS_SYSTEM -lpc /* isn't required in DJGPP v2.0, either */
129
130 #endif /* __DJGPP__ < 2 */
131
132 #if __DJGPP__ > 1
133
134 #define DATA_START (&etext + 1)
135 #define TEXT_START &start
136 #define TEXT_END &etext
137
138 #define _NAIVE_DOS_REGS
139
140 #else /* not __DJGPP__ > 1 */
141
142 /* This somehow needs to be defined even though we use COFF. */
143 #define TEXT_START -1
144
145 #endif /* not __DJGPP__ > 1 */
146
147 #define ORDINARY_LINK
148
149 /* command.com does not understand `...` so we define this. */
150 #define LIB_GCC -Lgcc
151 #define DONT_NEED_ENVIRON
152 #define SEPCHAR ';'
153
154 #define NULL_DEVICE "nul"
155 #define EXEC_SUFFIXES ".exe:.com:.bat:"
156
157 #if __DJGPP__ < 2
158 #define O_RDONLY 0x0001
159 #define O_WRONLY 0x0002
160 #define O_RDWR 0x0004
161 #define O_CREAT 0x0100
162 #define O_TRUNC 0x0200
163 #define O_EXCL 0x0400
164 #define O_APPEND 0x0800
165 #define O_TEXT 0x4000
166 #define O_BINARY 0x8000
167 #define NO_MATHERR
168 #endif
169
170 #define HAVE_INVERSE_HYPERBOLIC
171 #define FLOAT_CHECK_DOMAIN
172
173 /* When $TERM is "internal" then this is substituted: */
174 #define INTERNAL_TERMINAL "pc|bios|IBM PC with colour display:\
175 :co#80:li#25:km:ms:cm=<CM>:cl=<CL>:ce=<CE>:"
176
177 /* Define this to a function (Fdowncase, Fupcase) if your file system
178 likes that */
179 #define FILE_SYSTEM_CASE Fmsdos_downcase_filename
180
181 /* Define this to be the separator between devices and paths */
182 #define DEVICE_SEP ':'
183
184 /* We'll support either convention on MSDOG. */
185 #define IS_DIRECTORY_SEP(_c_) ((_c_) == '/' || (_c_) == '\\')
186 #define IS_ANY_SEP(_c_) (IS_DIRECTORY_SEP (_c_) || IS_DEVICE_SEP (_c_))
187
188 /* Call init_gettimeofday when TZ changes. */
189 #if __DJGPP__ < 2
190 #define LOCALTIME_CACHE
191 #define tzset init_gettimeofday
192 #endif
193
194 /* bcopy under djgpp is quite safe */
195 #define GAP_USE_BCOPY
196 #define BCOPY_UPWARD_SAFE 1
197 #define BCOPY_DOWNWARD_SAFE 1
198
199 /* Mode line description of a buffer's type. */
200 #define MODE_LINE_BINARY_TEXT(buf) (NILP(buf->buffer_file_type) ? "T" : "B")
201
202 /* Do we have POSIX signals? */
203 #if __DJGPP__ > 1
204 #define POSIX_SIGNALS
205 #endif
206
207 /* We have (the code to control) a mouse. */
208 #define HAVE_MOUSE
209
210 /* We canuse mouse menus. */
211 #define HAVE_MENUS
212
213 /* We have support for faces. */
214 #define HAVE_FACES
215
216 /* Define one of these for easier conditionals. */
217 #ifdef HAVE_X_WINDOWS
218 /* We need a little extra space, see ../../lisp/loadup.el */
219 #define SYSTEM_PURESIZE_EXTRA 15000
220 #define HAVE_X11R5
221 #define LIBX11_SYSTEM -lxext -lsys
222 #else
223 /* We need a little extra space, see ../../lisp/loadup.el */
224 #define SYSTEM_PURESIZE_EXTRA 85000
225 #endif