Fix display of R2L lines and cursor motion in bidi buffers.
[bpt/emacs.git] / admin / CPP-DEFINES
1 Here are some of the cpp macros used, together with some short explanation
2 of their use. Feel free to add more macros and more categories.
3
4 ** Distinguishing OSes **
5
6 CYGWIN Compiling the Cygwin port.
7 __CYGWIN__ Ditto
8 MSDOS Compiling the MS-DOS port.
9 __MSDOS__ Ditto.
10 __DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c.
11 DOS_NT Compiling for either the MS-DOS or native MS-Windows port.
12 WINDOWSNT Compiling the native MS-Windows (W32) port.
13 __MINGW32__ Compiling the W32 port with the MinGW port of GCC.
14 _MSC_VER Compiling the W32 port with the Microsoft C compiler.
15 DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h).
16
17 ** Distinguishing GUIs **
18
19 HAVE_NTGUI Use the native W32 GUI for windows, frames, menus&scrollbars.
20 HAVE_NS Use the NeXT/OpenStep/Cocoa UI under Mac OS X or GNUstep.
21 NS_IMPL_GNUSTEP Compile support for GNUstep implementation of NS GUI API.
22 NS_IMPL_COCOA Compile support for Cocoa (Apple) implementation of NS GUI API.
23 HAVE_X11 Compile support for the X11 GUI.
24 HAVE_X_WINDOWS Compile support for X Window system
25 X11 ?? Makefile.in suggests it's equivalent to HAVE_X11
26 USE_LUCID Use the Lucid toolkit for menus&scrollbars. Requires HAVE_X11.
27 USE_MOTIF Use the Motif toolkit for menus&scrollbars. Requires HAVE_X11.
28 USE_GTK Use the Gtk toolkit for menus&scrollbars. Requires HAVE_X11.
29
30 ** Frame types **
31
32 FRAME_TERMCAP_P A tty (character terminal) frame.
33 FRAME_X_P A frame on X Window system.
34 FRAME_MSDOS_P An MS-DOS frame (used only by the DOS port).
35 FRAME_W32_P A frame using native MS-Windows GUI.
36 FRAME_WINDOW_P A GUI frame (like X, w32, etc.)
37
38 ** Support for accessing other processes on the system **
39
40 HAVE_PROCFS The /proc filesystem is supported.
41
42 ** Compile-time options **
43
44 REL_ALLOC Compile in the relocatable memory allocator ralloc.c.
45 SYSTEM_MALLOC Use the system library's malloc.
46 subprocesses System can use subprocesses (for M-x shell for example). Defined by default, only MSDOS undefines it.
47 USE_LISP_UNION_TYPE Define it in lisp.h to make Lisp_Object be a union type instead of the default int.
48
49 ** System specific macros, decribed in detail in src/s/template.h
50 BSTRING
51 CLASH_DETECTION
52 COFF
53 FIRST_PTY_LETTER
54 HAVE_PTYS
55 HAVE_TERMIO
56 HAVE_TERMIOS
57 INTERRUPT_INPUT
58 MAIL_USE_FLOCK
59 NARROWPROTO
60 SEPCHAR
61 SIGTYPE
62 SYSTEM_TYPE
63 USE_MMAP_FOR_BUFFERS
64
65 ** Machine specific macros, decribed in detail in src/m/template.h
66 CANNOT_DUMP
67 EXPLICIT_SIGN_EXTEND
68 LOAD_AVE_CVT
69 LOAD_AVE_TYPE
70 NO_ARG_ARRAY
71 NO_REMAP
72 VIRT_ADDR_VARIES
73 WORDS_BIG_ENDIAN
74
75 ** Misc macros
76 USER_FULL_NAME If defined, overrides the default pw->pw_gecos for getting at the full user name. Only MSDOS overrides the default.
77
78 ** Replace, the definition is trivial: SWITCH_ENUM_CAST
79
80 ** Defines from src/m/*.h and src/s/*.h. Some of these might not be used in the code anymore, so they can be removed. The HAVE_* definitions are probably handled by autoconf, so it might be possible to just remove them from src/[sm]/*.h.
81
82
83 AIX
84 AMPERSAND_FULL_NAME
85 BCOPY_DOWNWARD_SAFE
86 BCOPY_UPWARD_SAFE
87 BITS_PER_EMACS_INT
88 BITS_PER_LONG
89 BROKEN_DATAGRAM_SOCKETS
90 BROKEN_FIONREAD
91 BROKEN_GET_CURRENT_DIR_NAME
92 BROKEN_NON_BLOCKING_CONNECT
93 BROKEN_PTY_READ_AFTER_EAGAIN
94 BROKEN_SA_RESTART
95 BROKEN_SIGAIO
96 BROKEN_SIGIO
97 BROKEN_SIGPOLL
98 BROKEN_SIGPTY
99 BSD4_2
100 BSD4_3
101 BSD_PGRPS
102 BSD_SYSTEM
103 CLASH_DETECTION
104 COFF_BSD_SYMBOLS
105 CRT0_DUMMIES
106 C_SWITCH_MACHINE
107 C_SWITCH_SYSTEM
108 C_SWITCH_X_SYSTEM
109 DATA_SEG_BITS
110 DATA_START
111 DBL_MIN_REPLACEMENT
112 DECLARE_GETPWUID_WITH_UID_T
113 DEFAULT_SOUND_DEVICE
114 DEVICE_SEP
115 DIRECTORY_SEP
116 DONT_REOPEN_PTY
117 DOUG_LEA_MALLOC
118 DebPrint
119 EMACSDEBUG
120 EMACS_CONFIGURATION
121 EMACS_CONFIG_OPTIONS
122 EMACS_INT
123 EMACS_UINT
124 END_FILES_1
125 FILE_SYSTEM_CASE
126 FLOAT_CHECK_DOMAIN
127 FSCALE
128 GAP_USE_BCOPY
129 GC_LISP_OBJECT_ALIGNMENT
130 GC_MARK_SECONDARY_STACK
131 GC_MARK_STACK
132 GC_SETJMP_WORKS
133 GMALLOC_INHIBIT_VALLOC
134 GNU_LIBRARY_PENDING_OUTPUT_COUNT
135 GNU_LINUX
136 GNU_MALLOC
137 HAVE_AIX_SMT_EXP
138 HAVE_ALLOCA
139 HAVE_BCMP
140 HAVE_BCOPY
141 HAVE_CBRT
142 HAVE_CLOSEDIR
143 HAVE_CRTIN
144 HAVE_DUP2
145 HAVE_EUIDACCESS
146 HAVE_FMOD
147 HAVE_FPATHCONF
148 HAVE_FREXP
149 HAVE_FSYNC
150 HAVE_FTIME
151 HAVE_GETCWD
152 HAVE_GETDOMAINNAME
153 HAVE_GETHOSTNAME
154 HAVE_GETLOADAVG
155 HAVE_GETPAGESIZE
156 HAVE_GETPT
157 HAVE_GETTIMEOFDAY
158 HAVE_GETWD
159 HAVE_H_ERRNO
160 HAVE_INDEX
161 HAVE_INET_SOCKETS
162 HAVE_INVERSE_HYPERBOLIC
163 HAVE_LIB64_DIR
164 HAVE_LIBKSTAT
165 HAVE_LIBNCURSES
166 HAVE_LIBPTHREADS
167 HAVE_LIBXMU
168 HAVE_LIMITS_H
169 HAVE_LINUX_VERSION_H
170 HAVE_LOGB
171 HAVE_LONG_FILE_NAMES
172 HAVE_LRAND48
173 HAVE_MENUS
174 HAVE_MKDIR
175 HAVE_MKTIME
176 HAVE_MOUSE
177 HAVE_PERROR
178 HAVE_PSTAT_GETDYNAMIC
179 HAVE_PWD_H
180 HAVE_RANDOM
181 HAVE_RENAME
182 HAVE_RES_INIT
183 HAVE_RINDEX
184 HAVE_RINT
185 HAVE_RMDIR
186 HAVE_SELECT
187 HAVE_SETLOCALE
188 HAVE_SETPGID
189 HAVE_SETRLIMIT
190 HAVE_SETSID
191 HAVE_SHUTDOWN
192 HAVE_SOCKETS
193 HAVE_SOUND
194 HAVE_STDLIB_H
195 HAVE_STRERROR
196 HAVE_STRFTIME
197 HAVE_STRING_H
198 HAVE_STRUCT_UTIMBUF
199 HAVE_SYSINFO
200 HAVE_SYSV_SIGPAUSE
201 HAVE_SYS_SELECT_H
202 HAVE_SYS_SYSTEMINFO_H
203 HAVE_SYS_TIMEB_H
204 HAVE_SYS_TIME_H
205 HAVE_TCATTR
206 HAVE_TERMIOS_H
207 HAVE_TEXT_START
208 HAVE_TIMEVAL
209 HAVE_TM_ZONE
210 HAVE_TZSET
211 HAVE_UNISTD_H
212 HAVE_UTIMES
213 HAVE_UTIME_H
214 HAVE_VOLATILE
215 HAVE_WINDOW_SYSTEM
216 HAVE_WORKING_VFORK
217 HAVE_XRMSETDATABASE
218 HPUX
219 IBMR2AIX
220 INHIBIT_X11R6_XIM
221 INTERNAL_TERMINAL
222 IS_ANY_SEP
223 IS_DIRECTORY_SEP
224 KERNEL_FILE
225 LDAV_SYMBOL
226 LD_SWITCH_MACHINE
227 LD_SWITCH_MACHINE_TEMACS
228 LD_SWITCH_SYSTEM
229 LD_SWITCH_SYSTEM_TEMACS
230 LD_SWITCH_SYSTEM_tmp
231 LD_SWITCH_X_DEFAULT
232 LIBS_MACHINE
233 LIBS_SYSTEM
234 LIBS_TERMCAP
235 LIBXMU
236 LIB_GCC
237 LIB_MATH
238 LIB_STANDARD
239 LINKER
240 LINUX_VERSION_CODE
241 LISP_FLOAT_TYPE
242 LNOFLSH
243 LOCALTIME_CACHE
244 MAIL_USE_LOCKF
245 MAIL_USE_POP
246 MAIL_USE_SYSTEM_LOCK
247 MAXPATHLEN
248 MIN_PTY_KERNEL_VERSION -- only used on Mac
249 MODE_LINE_BINARY_TEXT
250 MUST_UNDEF__STDC__
251 NEED_BSDTTY
252 NEED_ERRNO
253 NEED_UNISTD_H
254 NLIST_STRUCT
255 NOT_C_CODE
256 NOT_USING_MOTIF
257 NO_ABORT
258 NO_DIR_LIBRARY
259 NO_EDITRES
260 NO_MATHERR
261 NO_SHARED_LIBS
262 NO_TERMIO
263 NSIG
264 NSIG_MINIMUM
265 NULL
266 NULL_DEVICE
267 ORDINARY_LINK
268 OTHER_FILES
269 O_APPEND
270 O_BINARY
271 O_CREAT
272 O_EXCL
273 O_RDONLY
274 O_RDWR
275 O_TEXT
276 O_TRUNC
277 O_WRONLY
278 PAGESIZE
279 PENDING_OUTPUT_COUNT
280 POSIX
281 POSIX_SIGNALS
282 PREFER_VSUSP
283 PTY_ITERATION
284 PTY_NAME_SPRINTF
285 PTY_OPEN
286 PTY_TTY_NAME_SPRINTF
287 PURESIZE
288 RUN_TIME_REMAP
289 SA_RESTART
290 SECTION_ALIGNMENT -- was only used by s/lynxos.h, maybe all code depending on it can be removed.
291 SEGMENT_MASK
292 SETPGRP_RELEASES_CTTY
293 SETUP_SLAVE_PTY
294 SIGALRM
295 SIGCHLD
296 SIGHUP
297 SIGKILL
298 SIGNALS_VIA_CHARACTERS
299 SIGPIPE
300 SIGQUIT
301 SIGTRAP
302 SIGTYPE
303 SOLARIS2
304 START_FILES
305 START_FILES_1
306 STDC_HEADERS
307 SYMS_SYSTEM
308 SYSTEM_PURESIZE_EXTRA
309 SYSTEM_MALLOC
310 SYSV_SYSTEM_DIR
311 Srandom
312 TAB3
313 TABDLY
314 TERM
315 TERMINFO
316 TEXT_START
317 THIS_IS_CONFIGURE
318 THIS_IS_MAKEFILE
319 TIME_WITH_SYS_TIME
320 TIOCSIGSEND
321 TM_IN_SYS_TIME
322 ULIMIT_BREAK_VALUE
323 UNEXEC
324 UNIX98_PTYS
325 USE_CRT_DLL
326 USE_MAC_IMAGE_IO
327 USE_TOOLKIT_SCROLL_BARS
328 USG
329 USG5
330 USG5_4
331 USG_SUBTTY_WORKS
332 VALBITS
333 WORDS_BIG_ENDIAN
334 WRETCODE
335 XINT
336 XOS_NEEDS_TIME_H
337 XPNTR
338 XSET
339 XUINT
340 _AIX
341 _ARCH_PPC64
342 _CALLBACK_
343 _FILE_OFFSET_BITS
344 _LP64
345 _MALLOC_INTERNAL
346 _NAIVE_DOS_REGS
347 _VARARGS_
348 _WINSOCKAPI_
349 _WINSOCK_H
350 __ELF__
351 __FreeBSD__
352 __FreeBSD_version
353 __GNUC__
354 __GNU_LIBRARY__
355 __GNUC_MINOR__
356 __NetBSD__
357 __OpenBSD__
358 __STDC__
359 __arch64__
360 __cplusplus
361 __hpux
362 __ia64__
363 __linux__
364 __mc68000__
365 __mips__
366 _longjmp
367 _setjmp
368 _start
369 abort
370 access
371 alloca
372 bcmp
373 bcopy
374 brk
375 bzero
376 calloc
377 chdir
378 chmod
379 chown
380 close
381 const
382 creat
383 ctime
384 dup
385 dup2
386 edata
387 emacs
388 etext
389 execlp
390 execvp
391 fdopen
392 fileno
393 fopen
394 free
395 fsync
396 ftruncate
397 fwrite
398 getdefdir
399 getdisk
400 getenv
401 getpid
402 getuid
403 gmtime
404 i386
405 index
406 init_process
407 isatty
408 kill
409 link
410 linux
411 localtime
412 logb
413 lseek
414 m68k
415 malloc
416 mkdir
417 mktemp
418 open
419 pclose
420 pipe
421 popen
422 random
423 read
424 realloc
425 rename
426 rindex
427 rmdir
428 sbrk
429 select
430 sigmask
431 signal
432 sigsetmask
433 sleep
434 spawnve
435 srandom
436 strdup
437 strerror
438 stricmp
439 strnicmp
440 strupr
441 sys_nerr
442 system
443 temacs
444 tzname
445 tzset
446 umask
447 unix
448 unlink
449 utimbuf
450 utime
451 vfork
452 wait
453 write
454 xfree
455
456 # arch-tag: bc80061a-1168-4911-9766-46aaf2640250