Document reserved keys
[emacs.git] / admin / CPP-DEFINES
blob7a90b3dbe4fa37357a666e729b4038eadd649df0
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 Most of these are from config.in, so it's probably better to put the
4 explanations in that file.  Ideally, everything would be defined and
5 documented in config.in, and this file would not be necessary.
8 ** Distinguishing OSes **
10 AIX
11 _AIX
12 CYGWIN          Compiling the Cygwin port.
13 __CYGWIN__      Ditto
14 GNU_LINUX
15 HPUX
16 MSDOS           Compiling the MS-DOS port.
17 __MSDOS__       Ditto.
18 __DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c.
19 DOS_NT          Compiling for either the MS-DOS or native MS-Windows port.
20 WINDOWSNT       Compiling the native MS-Windows (W32) port.
21 __MINGW32__     Compiling the W32 port with the MinGW or MinGW-w64 ports of GCC.
22 _MSC_VER        Compiling the W32 port with the Microsoft C compiler.
23 MINGW_W64       Compiling the W32 port with the MinGW-w64 port of GCC.
24 DARWIN_OS       Compiling on macOS or pure Darwin (and using s/darwin.h).
25 SOLARIS2
26 USG
27 USG5_4
29 ** Distinguishing GUIs **
31 HAVE_NTGUI      Use the native W32 GUI for windows, frames, menus&scrollbars.
32 HAVE_NS         Use the NeXT/OpenStep/Cocoa UI under macOS or GNUstep.
33 NS_IMPL_GNUSTEP Compile support for GNUstep implementation of NS GUI API.
34 NS_IMPL_COCOA   Compile support for Cocoa (Apple) implementation of NS GUI API.
35 HAVE_X11        Compile support for the X11 GUI.
36 HAVE_X_WINDOWS  Compile support for X Window system
37   (It looks like, nowadays, if HAVE_X11 is set, HAVE_X_WINDOWS must
38    be, and vice versa.  At least, this is true for configure, and
39    msdos; not sure about nt.)
40 HAVE_X11R6
41 HAVE_X11R6_XIM
42 HAVE_X11XTR6
43 USE_LUCID       Use the Lucid toolkit for menus&scrollbars.  Requires HAVE_X11.
44 USE_MOTIF       Use the Motif toolkit for menus&scrollbars.  Requires HAVE_X11.
45 USE_GTK         Use the Gtk   toolkit for menus&scrollbars.  Requires HAVE_X11.
47 ** Frame types **
49 FRAME_TERMCAP_P A tty (character terminal) frame.
50 FRAME_X_P       A frame on X Window system.
51 FRAME_MSDOS_P   An MS-DOS frame (used only by the DOS port).
52 FRAME_W32_P     A frame using native MS-Windows GUI.
53 FRAME_WINDOW_P  A GUI frame (like X, w32, etc.)
55 ** Support for accessing other processes on the system **
57 HAVE_PROCFS     The /proc filesystem is supported.
59 ** Compile-time options **
61 REL_ALLOC       Compile in the relocatable memory allocator ralloc.c.
62 SYSTEM_MALLOC   Use the system library's malloc.
63 subprocesses    System can use subprocesses (for M-x shell for example).
64                 Defined by default, only MSDOS undefines it.
65 DEBUG_LISP_OBJECT_TYPE Define it in lisp.h enable compile time checks
66                        on Lisp_Object use.
68 ** System specific macros
69 FIRST_PTY_LETTER
70 HAVE_PTYS
71 INTERRUPT_INPUT
72 NARROWPROTO
73 SEPCHAR
74 SYSTEM_TYPE
76 ** Misc macros
77 USER_FULL_NAME   If defined, overrides the default pw->pw_gecos for
78 getting at the full user name.  Only MSDOS overrides the default.
80 ** Miscellaneous defines.  Some of these might not be used in the code
81 anymore, so they can be removed.
83 AMPERSAND_FULL_NAME
84 BROKEN_DATAGRAM_SOCKETS
85 BROKEN_FIONREAD
86 BROKEN_GET_CURRENT_DIR_NAME
87 BROKEN_PTY_READ_AFTER_EAGAIN
88 DEFAULT_SOUND_DEVICE
89 DEVICE_SEP
90 DIRECTORY_SEP
91 DONT_REOPEN_PTY
92 DOUG_LEA_MALLOC
93 EMACS_CONFIGURATION
94 EMACS_CONFIG_OPTIONS
95 EMACS_INT
96 EMACS_UINT
97 GC_MARK_SECONDARY_STACK
98 GC_MARK_STACK
99 GC_SETJMP_WORKS
100 GNU_MALLOC
101 HAVE_AIX_SMT_EXP
102 HAVE_ALARM
103 HAVE_ALLOCA
104 HAVE_ALLOCA_H
105 HAVE_ALSA
106 HAVE_BDFFONT
107 HAVE_BOXES
108 HAVE_C99_STRTOLD
109 HAVE_CFMAKERAW
110 HAVE_CFSETSPEED
111 HAVE_CLOCK_GETTIME
112 HAVE_CLOCK_SETTIME
113 HAVE_COFF_H
114 HAVE_COM_ERR_H
115 HAVE_DBUS
116 HAVE_DBUS_TYPE_IS_VALID
117 HAVE_DBUS_VALIDATE_BUS_NAME
118 HAVE_DBUS_VALIDATE_INTERFACE
119 HAVE_DBUS_VALIDATE_MEMBER
120 HAVE_DBUS_VALIDATE_PATH
121 HAVE_DBUS_WATCH_GET_UNIX_FD
122 HAVE_DECL_GETENV
123 HAVE_DECL_LOCALTIME_R
124 HAVE_DECL_STRMODE
125 HAVE_DECL_STRTOIMAX
126 HAVE_DECL_STRTOLL
127 HAVE_DECL_STRTOULL
128 HAVE_DECL_STRTOUMAX
129 HAVE_DECL_SYS_SIGLIST
130 HAVE_DECL_TZNAME
131 HAVE_DECL___SYS_SIGLIST
132 HAVE_DIALOGS
133 HAVE_DIFFTIME
134 HAVE_DUP2
135 HAVE_ENDGRENT
136 HAVE_ENDPWENT
137 HAVE_ENVIRON_DECL
138 HAVE_EUIDACCESS
139 HAVE_FORK
140 HAVE_FREEIFADDRS
141 HAVE_FREETYPE
142 HAVE_FSEEKO
143 HAVE_FUTIMENS
144 HAVE_FUTIMES
145 HAVE_FUTIMESAT
146 HAVE_GAI_STRERROR
147 HAVE_GCONF
148 HAVE_GETDELIM
149 HAVE_GETGRENT
150 HAVE_GETHOSTNAME
151 HAVE_GETIFADDRS
152 HAVE_GETLINE
153 HAVE_GETLOADAVG
154 HAVE_GETOPT_H
155 HAVE_GETOPT_LONG_ONLY
156 HAVE_GETPAGESIZE
157 HAVE_GETPT
158 HAVE_GETPWENT
159 HAVE_GETRLIMIT
160 HAVE_GETRUSAGE
161 HAVE_GETSOCKNAME
162 HAVE_GETTIMEOFDAY
163 HAVE_GET_CURRENT_DIR_NAME
164 HAVE_GHOSTSCRIPT
165 HAVE_GIF
166 HAVE_GNUTLS
167 HAVE_GPM
168 HAVE_GRANTPT
169 HAVE_GSETTINGS
170 HAVE_GTK3
171 HAVE_GTK_ADJUSTMENT_GET_PAGE_SIZE
172 HAVE_GTK_DIALOG_GET_ACTION_AREA
173 HAVE_GTK_FILE_SELECTION_NEW
174 HAVE_GTK_MAIN
175 HAVE_GTK_MULTIDISPLAY
176 HAVE_GTK_ORIENTABLE_SET_ORIENTATION
177 HAVE_GTK_WIDGET_GET_MAPPED
178 HAVE_GTK_WIDGET_GET_SENSITIVE
179 HAVE_GTK_WIDGET_GET_WINDOW
180 HAVE_GTK_WIDGET_SET_HAS_WINDOW
181 HAVE_GTK_WINDOW_SET_HAS_RESIZE_GRIP
182 HAVE_G_TYPE_INIT
183 HAVE_IFADDRS_H
184 HAVE_IMAGEMAGICK
185 HAVE_INET_SOCKETS
186 HAVE_INTTYPES_H
187 HAVE_JPEG
188 HAVE_KERBEROSIV_KRB_H
189 HAVE_KERBEROS_KRB_H
190 HAVE_KRB5_ERROR_E_TEXT
191 HAVE_KRB5_ERROR_TEXT
192 HAVE_KRB5_H
193 HAVE_KRB_H
194 HAVE_LANGINFO_CODESET
195 HAVE_LIBDGC
196 HAVE_LIBKSTAT
197 HAVE_LIBLOCKFILE
198 HAVE_LIBMAIL
199 HAVE_LIBOTF
200 HAVE_LIBPERFSTAT
201 HAVE_LIBPNG_PNG_H
202 HAVE_LIBSELINUX
203 HAVE_LIBXML2
204 HAVE_LIBXMU
205 HAVE_LOCALTIME_R
206 HAVE_LOCAL_SOCKETS
207 HAVE_LONG_LONG_INT
208 HAVE_LRAND48
209 HAVE_LSTAT
210 HAVE_LUTIMES
211 HAVE_M17N_FLT
212 HAVE_MACHINE_SOUNDCARD_H
213 HAVE_MACH_MACH_H
214 HAVE_MAGICKEXPORTIMAGEPIXELS
215 HAVE_MAGICKMERGEIMAGELAYERS
216 HAVE_MAILLOCK_H
217 HAVE_MALLOC_MALLOC_H
218 HAVE_MATHERR
219 HAVE_MBSTATE_T
220 HAVE_MEMCMP
221 HAVE_MEMMOVE
222 HAVE_MEMORY_H
223 HAVE_MEMSET
224 HAVE_MENUS
225 HAVE_MKSTEMP
226 HAVE_MMAP
227 HAVE_MULTILINGUAL_MENU
228 HAVE_NANOTIME
229 HAVE_NET_IF_DL_H
230 HAVE_NET_IF_H
231 HAVE_NLIST_H
232 HAVE_OTF_GET_VARIATION_GLYPHS
233 HAVE_PERSONALITY_ADDR_NO_RANDOMIZE
234 HAVE_PNG
235 HAVE_PNG_H
236 HAVE_POSIX_MEMALIGN
237 HAVE_PROCFS
238 HAVE_PSELECT
239 HAVE_PSTAT_GETDYNAMIC
240 HAVE_PTHREAD
241 HAVE_PTHREAD_H
242 HAVE_PTHREAD_SIGMASK
243 HAVE_PTYS
244 HAVE_PTY_H
245 HAVE_PWD_H
246 HAVE_RANDOM
247 HAVE_READLINK
248 HAVE_READLINKAT
249 HAVE_RECVFROM
250 HAVE_RINT
251 HAVE_RSVG
252 HAVE_SELECT
253 HAVE_SENDTO
254 HAVE_SEQPACKET
255 HAVE_SETITIMER
256 HAVE_SETLOCALE
257 HAVE_SETRLIMIT
258 HAVE_SHARED_GAME_DIR
259 HAVE_SHUTDOWN
260 HAVE_SIGNED_${GLTYPE}
261 HAVE_SIGNED_SIG_ATOMIC_T
262 HAVE_SIGNED_WCHAR_T
263 HAVE_SIGNED_WINT_T
264 HAVE_SIGSET_T
265 HAVE_SNPRINTF
266 HAVE_SOCKETS
267 HAVE_SOUND
268 HAVE_SOUNDCARD_H
269 HAVE_STDINT_H
270 HAVE_STDIO_EXT_H
271 HAVE_STDLIB_H
272 HAVE_STLIB_H_1
273 HAVE_STRINGS_H
274 HAVE_STRING_H
275 HAVE_STRNCASECMP
276 HAVE_STRSIGNAL
277 HAVE_STRTOIMAX
278 HAVE_STRTOLL
279 HAVE_STRTOULL
280 HAVE_STRTOUMAX
281 HAVE_STRUCT_ERA_ENTRY
282 HAVE_STRUCT_IFREQ_IFR_ADDR
283 HAVE_STRUCT_IFREQ_IFR_ADDR_SA_LEN
284 HAVE_STRUCT_IFREQ_IFR_BROADADDR
285 HAVE_STRUCT_IFREQ_IFR_FLAGS
286 HAVE_STRUCT_IFREQ_IFR_HWADDR
287 HAVE_STRUCT_IFREQ_IFR_NETMASK
288 HAVE_STRUCT_NLIST_N_UN_N_NAME
289 HAVE_STRUCT_STAT_ST_ATIMENSEC
290 HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
291 HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC
292 HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
293 HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
294 HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
295 HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC
296 HAVE_STRUCT_TIMEZONE
297 HAVE_STRUCT_TM_TM_ZONE
298 HAVE_STRUCT_UTIMBUF
299 HAVE_ST_DM_MODE
300 HAVE_SYMLINK
301 HAVE_SYNC
302 HAVE_SYS_BITYPES_H
303 HAVE_SYS_INTTYPES_H
304 HAVE_SYS_LOADAVG_H
305 HAVE_SYS_PARAM_H
306 HAVE_SYS_RESOURCE_H
307 HAVE_SYS_SELECT_H
308 HAVE_SYS_SOCKET_H
309 HAVE_SYS_SOUNDCARD_H
310 HAVE_SYS_STAT_H
311 HAVE_SYS_SYSTEMINFO_H
312 HAVE_SYS_TIMEB_H
313 HAVE_SYS_TIME_H
314 HAVE_SYS_TYPES_H
315 HAVE_SYS_UN_H
316 HAVE_SYS_UTSNAME_H
317 HAVE_SYS_VLIMIT_H
318 HAVE_SYS_WAIT_H
319 HAVE_TCATTR
320 HAVE_TERM_H
321 HAVE_TIFF
322 HAVE_TIMEVAL
323 HAVE_TM_GMTOFF
324 HAVE_TM_ZONE
325 HAVE_TOUCHLOCK
326 HAVE_TZNAME
327 HAVE_TZSET
328 HAVE_UNSIGNED_LONG_LONG_INT
329 HAVE_UTIL_H
330 HAVE_UTIMENSAT
331 HAVE_UTIMES
332 HAVE_UTIME_H
333 HAVE_UTMP_H
334 HAVE_VFORK
335 HAVE_VFORK_H
336 HAVE_WCHAR_H
337 HAVE_WCHAR_T
338 HAVE_WINDOW_SYSTEM
339 HAVE_WINSOCK2_H
340 HAVE_WORKING_FORK
341 HAVE_WORKING_UTIMES
342 HAVE_WORKING_VFORK
343 HAVE_WS2TCPIP_H
344 HAVE_XAW3D
345 HAVE_XFT
346 HAVE_XIM
347 HAVE_XPM
348 HAVE_XRMSETDATABASE
349 HAVE_XSCREENNUMBEROFSCREEN
350 HAVE_XSCREENRESOURCESTRING
351 HAVE_X_I18N
352 HAVE_X_MENU
353 HAVE_X_SM
354 HAVE_X_WINDOWS
355 HAVE__BOOL
356 HAVE__FTIME
357 HAVE___BUILTIN_UNWIND_INIT
358 HAVE___EXECUTABLE_START
359 HAVE___FPENDING
360 INTERNAL_TERMINAL
361 IS_ANY_SEP
362 IS_DIRECTORY_SEP
363 MAIL_USE_FLOCK
364 MAIL_USE_LOCKF
365 MAIL_USE_POP
366 MAIL_USE_SYSTEM_LOCK
367 MAXPATHLEN
368 NLIST_STRUCT
369 NO_EDITRES
370 NSIG
371 NSIG_MINIMUM
372 NULL_DEVICE
373 PAGESIZE
374 PTY_ITERATION
375 PTY_NAME_SPRINTF
376 PTY_OPEN
377 PTY_TTY_NAME_SPRINTF
378 PURESIZE
379 RUN_TIME_REMAP
380 SETUP_SLAVE_PTY
381 SIGNALS_VIA_CHARACTERS
382 STDC_HEADERS
383 SYSTEM_PURESIZE_EXTRA
384 SYSTEM_MALLOC
385 TAB3
386 TABDLY
387 TERM
388 TIME_WITH_SYS_TIME
389 TIOCSIGSEND
390 TM_IN_SYS_TIME
391 UNIX98_PTYS
392 USE_TOOLKIT_SCROLL_BARS
393 USG_SUBTTY_WORKS
394 VALBITS
395 XOS_NEEDS_TIME_H
396 _FILE_OFFSET_BITS
397 _LP64
398 _longjmp
399 _setjmp
400 abort
401 alloca
402 close
403 emacs
404 free
405 gmtime
406 localtime
407 malloc
408 random
409 read
410 realloc
411 select
412 umask
413 vfork
416 src/sysdep.c:
417 write
419 src/syssignal.h:
420 signal
421 sigmask
422 sigsetmask
425 lib/dup2.c:
426 dup2
428 lib/signal.h:
429 signal
431 lib/stdio.h:
432 fdopen
433 fopen
434 fwrite
435 popen
436 rename
438 lib/stdlib.h:
439 calloc
440 srandom     (conf_post.h may undo)
442 lib/strftime.c:
443 tzname
444 tzset
446 lib/sys/stat.h:
447 mkdir
449 lib/unistd.h:
450 chown
452 dup2
453 ftruncate
454 isatty
455 link
456 lseek
457 pipe
458 rmdir
459 sleep
460 unlink
463 MS DOS stuff:
465 _NAIVE_DOS_REGS
468 MS stuff:
470 USE_CRT_DLL
472 ms-w32.h:
473 DebPrint
474 EMACSDEBUG
475 MUST_UNDEF__STDC__
477 _VARARGS_
478 _WINSOCKAPI_
479 _WINSOCK_H
481 access
482 calloc
483 chdir
484 chmod
485 chown
486 creat
487 ctime
489 dup2
490 execlp
491 execvp  (also emacsclient.c [WINDOWSNT])
492 fdopen
493 fileno
494 fopen
495 fsync
496 ftruncate
497 getdefdir
498 getdisk
499 getpid
500 isatty
501 kill
502 link
503 lseek
504 mkdir
505 mktemp
506 open
507 pclose
508 pipe
509 popen
510 rename
511 rmdir
512 signal
513 sleep
514 spawnve
515 strdup
516 stricmp
517 strnicmp
518 strupr
519 sys_nerr
520 tzname
521 tzset
522 umask
523 unlink
524 utimbuf
525 utime
526 wait  (also movemail.c [WINDOWSNT])
527 write
529 lib-src/ntlib:
530 access
531 chdir
532 chmod
533 creat
535 dup2
536 execlp
537 execvp
538 fdopen
539 fileno
540 fopen
541 getpid
542 index
543 isatty
544 lseek
545 mkdir
546 mktemp
547 open
548 pclose
549 pipe
550 popen
551 rmdir
552 rindex
553 sleep
554 umask
555 unlink
556 utime