91 |
#endif |
#endif |
92 |
EMACS_INT PVEC_FLAG = PSEUDOVECTOR_FLAG; |
EMACS_INT PVEC_FLAG = PSEUDOVECTOR_FLAG; |
93 |
|
|
94 |
/* Command line args from shell, as list of strings */ |
/* Command line args from shell, as list of strings. */ |
95 |
Lisp_Object Vcommand_line_args; |
Lisp_Object Vcommand_line_args; |
96 |
|
|
97 |
/* The name under which Emacs was invoked, with any leading directory |
/* The name under which Emacs was invoked, with any leading directory |
112 |
Lisp_Object empty_string; |
Lisp_Object empty_string; |
113 |
|
|
114 |
#ifdef SIGUSR1 |
#ifdef SIGUSR1 |
115 |
/* Hooks for signal USR1 and USR2 handing */ |
/* Hooks for signal USR1 and USR2 handling. */ |
116 |
Lisp_Object Vsignal_USR1_hook; |
Lisp_Object Vsignal_USR1_hook; |
117 |
#ifdef SIGUSR2 |
#ifdef SIGUSR2 |
118 |
Lisp_Object Vsignal_USR2_hook; |
Lisp_Object Vsignal_USR2_hook; |
119 |
#endif |
#endif |
120 |
#endif |
#endif |
121 |
|
|
122 |
/* Search path separator. */ |
/* Search path separator. */ |
159 |
Lisp_Object Vprevious_system_time_locale; |
Lisp_Object Vprevious_system_time_locale; |
160 |
|
|
161 |
/* If non-zero, emacs should not attempt to use an window-specific code, |
/* If non-zero, emacs should not attempt to use an window-specific code, |
162 |
but instead should use the virtual terminal under which it was started */ |
but instead should use the virtual terminal under which it was started. */ |
163 |
int inhibit_window_system; |
int inhibit_window_system; |
164 |
|
|
165 |
/* If nonzero, set Emacs to run at this priority. This is also used |
/* If nonzero, set Emacs to run at this priority. This is also used |
166 |
in child_setup and sys_suspend to make sure subshells run at normal |
in child_setup and sys_suspend to make sure subshells run at normal |
167 |
priority; Those functions have their own extern declaration. */ |
priority; those functions have their own extern declaration. */ |
168 |
int emacs_priority; |
int emacs_priority; |
169 |
|
|
170 |
/* If non-zero a filter or a sentinel is running. Tested to save the match |
/* If non-zero, a filter or a sentinel is running. Tested to save the match |
171 |
data on the first attempt to change it inside asynchronous code. */ |
data on the first attempt to change it inside asynchronous code. */ |
172 |
int running_asynch_code; |
int running_asynch_code; |
173 |
|
|
174 |
#ifdef BSD_PGRPS |
#ifdef BSD_PGRPS |
177 |
#endif |
#endif |
178 |
|
|
179 |
#ifdef HAVE_X_WINDOWS |
#ifdef HAVE_X_WINDOWS |
180 |
/* If non-zero, -d was specified, meaning we're using some window system. */ |
/* If non-zero, -d was specified, meaning we're using some window system. */ |
181 |
int display_arg; |
int display_arg; |
182 |
#endif |
#endif |
183 |
|
|
265 |
--border-width, -bw WIDTH width of main border\n\ |
--border-width, -bw WIDTH width of main border\n\ |
266 |
--cursor-color, -cr COLOR color of the Emacs cursor indicating point\n\ |
--cursor-color, -cr COLOR color of the Emacs cursor indicating point\n\ |
267 |
--display, -d DISPLAY use X server DISPLAY\n\ |
--display, -d DISPLAY use X server DISPLAY\n\ |
268 |
--font, -fn FONT default font; must be fixed-widthp\n\ |
--font, -fn FONT default font; must be fixed-width\n\ |
269 |
--foreground-color, -fg COLOR window foreground color\n\ |
--foreground-color, -fg COLOR window foreground color\n\ |
270 |
--geometry, -g GEOMETRY window geometry\n\ |
--geometry, -g GEOMETRY window geometry\n\ |
271 |
--iconic start Emacs in iconified state\n\ |
--iconic start Emacs in iconified state\n\ |
275 |
--mouse-color, -ms COLOR mouse cursor color in Emacs window\n\ |
--mouse-color, -ms COLOR mouse cursor color in Emacs window\n\ |
276 |
--name NAME title of main Emacs window\n\ |
--name NAME title of main Emacs window\n\ |
277 |
--reverse-video, -r, -rv switch foreground and background\n\ |
--reverse-video, -r, -rv switch foreground and background\n\ |
278 |
--title, -T, -wn, TITLE title for Emacs windows\n\ |
--title, -T, -wn TITLE title for Emacs windows\n\ |
279 |
--vertical-scroll-bars, -vb enable vertical scroll bars\n\ |
--vertical-scroll-bars, -vb enable vertical scroll bars\n\ |
280 |
--xrm XRESOURCES set additional X resources\n\ |
--xrm XRESOURCES set additional X resources\n\ |
281 |
\n\ |
\n\ |
290 |
section of the Emacs manual or the file BUGS.\n" |
section of the Emacs manual or the file BUGS.\n" |
291 |
|
|
292 |
|
|
293 |
/* Signal code for the fatal signal that was received */ |
/* Signal code for the fatal signal that was received. */ |
294 |
int fatal_error_code; |
int fatal_error_code; |
295 |
|
|
296 |
/* Nonzero if handling a fatal error already */ |
/* Nonzero if handling a fatal error already. */ |
297 |
int fatal_error_in_progress; |
int fatal_error_in_progress; |
298 |
|
|
299 |
/* If non-null, call this function from fata_error_signal before |
/* If non-null, call this function from fatal_error_signal before |
300 |
committing suicide. */ |
committing suicide. */ |
301 |
|
|
302 |
void (*fatal_error_signal_hook) P_ ((void)); |
void (*fatal_error_signal_hook) P_ ((void)); |
333 |
} |
} |
334 |
#endif /* SIGUSR2 */ |
#endif /* SIGUSR2 */ |
335 |
|
|
336 |
/* Handle bus errors, invalid instruction, etc. */ |
/* Handle bus errors, invalid instruction, etc. */ |
337 |
SIGTYPE |
SIGTYPE |
338 |
fatal_error_signal (sig) |
fatal_error_signal (sig) |
339 |
int sig; |
int sig; |
364 |
|
|
365 |
if (fatal_error_signal_hook) |
if (fatal_error_signal_hook) |
366 |
fatal_error_signal_hook (); |
fatal_error_signal_hook (); |
367 |
|
|
368 |
kill (getpid (), fatal_error_code); |
kill (getpid (), fatal_error_code); |
369 |
#endif /* not VMS */ |
#endif /* not VMS */ |
370 |
} |
} |
387 |
|
|
388 |
/* We define abort, rather than using it from the library, |
/* We define abort, rather than using it from the library, |
389 |
so that GDB can return from a breakpoint here. |
so that GDB can return from a breakpoint here. |
390 |
MSDOS has its own definition on msdos.c */ |
MSDOS has its own definition in msdos.c. */ |
391 |
|
|
392 |
#if ! defined (DOS_NT) && ! defined (NO_ABORT) |
#if ! defined (DOS_NT) && ! defined (NO_ABORT) |
393 |
|
|
405 |
#endif |
#endif |
406 |
|
|
407 |
|
|
408 |
/* Code for dealing with Lisp access to the Unix command line */ |
/* Code for dealing with Lisp access to the Unix command line. */ |
409 |
|
|
410 |
static void |
static void |
411 |
init_cmdargs (argc, argv, skip_args) |
init_cmdargs (argc, argv, skip_args) |
547 |
} |
} |
548 |
|
|
549 |
DEFUN ("invocation-name", Finvocation_name, Sinvocation_name, 0, 0, 0, |
DEFUN ("invocation-name", Finvocation_name, Sinvocation_name, 0, 0, 0, |
550 |
"Return the program name that was used to run Emacs.\n\ |
doc: /* Return the program name that was used to run Emacs. |
551 |
Any directory names are omitted.") |
Any directory names are omitted. */) |
552 |
() |
() |
553 |
{ |
{ |
554 |
return Fcopy_sequence (Vinvocation_name); |
return Fcopy_sequence (Vinvocation_name); |
555 |
} |
} |
556 |
|
|
557 |
DEFUN ("invocation-directory", Finvocation_directory, Sinvocation_directory, |
DEFUN ("invocation-directory", Finvocation_directory, Sinvocation_directory, |
558 |
0, 0, 0, |
0, 0, 0, |
559 |
"Return the directory name in which the Emacs executable was located") |
doc: /* Return the directory name in which the Emacs executable was located. */) |
560 |
() |
() |
561 |
{ |
{ |
562 |
return Fcopy_sequence (Vinvocation_directory); |
return Fcopy_sequence (Vinvocation_directory); |
563 |
} |
} |
804 |
#endif /* NeXT */ |
#endif /* NeXT */ |
805 |
|
|
806 |
#ifdef VMS |
#ifdef VMS |
807 |
/* If -map specified, map the data file in */ |
/* If -map specified, map the data file in. */ |
808 |
{ |
{ |
809 |
char *file; |
char *file; |
810 |
if (argmatch (argv, argc, "-map", "--map-data", 3, &mapin_file, &skip_args)) |
if (argmatch (argv, argc, "-map", "--map-data", 3, &mapin_file, &skip_args)) |
813 |
|
|
814 |
#ifdef LINK_CRTL_SHARE |
#ifdef LINK_CRTL_SHARE |
815 |
#ifdef SHARABLE_LIB_BUG |
#ifdef SHARABLE_LIB_BUG |
816 |
/* Bletcherous shared libraries! */ |
/* Bletcherous shared libraries! */ |
817 |
if (!stdin) |
if (!stdin) |
818 |
stdin = fdopen (0, "r"); |
stdin = fdopen (0, "r"); |
819 |
if (!stdout) |
if (!stdout) |
934 |
|
|
935 |
inhibit_window_system = 0; |
inhibit_window_system = 0; |
936 |
|
|
937 |
/* Handle the -t switch, which specifies filename to use as terminal */ |
/* Handle the -t switch, which specifies filename to use as terminal. */ |
938 |
while (1) |
while (1) |
939 |
{ |
{ |
940 |
char *term; |
char *term; |
973 |
if (argmatch (argv, argc, "-batch", "--batch", 5, NULL, &skip_args)) |
if (argmatch (argv, argc, "-batch", "--batch", 5, NULL, &skip_args)) |
974 |
noninteractive = 1; |
noninteractive = 1; |
975 |
|
|
976 |
/* Handle the --help option, which gives a usage message.. */ |
/* Handle the --help option, which gives a usage message. */ |
977 |
if (argmatch (argv, argc, "-help", "--help", 3, NULL, &skip_args)) |
if (argmatch (argv, argc, "-help", "--help", 3, NULL, &skip_args)) |
978 |
{ |
{ |
979 |
printf (USAGE1, argv[0]); |
printf (USAGE1, argv[0]); |
1098 |
|
|
1099 |
noninteractive1 = noninteractive; |
noninteractive1 = noninteractive; |
1100 |
|
|
1101 |
/* Perform basic initializations (not merely interning symbols) */ |
/* Perform basic initializations (not merely interning symbols). */ |
1102 |
|
|
1103 |
if (!initialized) |
if (!initialized) |
1104 |
{ |
{ |
1109 |
init_coding_once (); |
init_coding_once (); |
1110 |
init_syntax_once (); /* Create standard syntax table. */ |
init_syntax_once (); /* Create standard syntax table. */ |
1111 |
init_category_once (); /* Create standard category table. */ |
init_category_once (); /* Create standard category table. */ |
1112 |
/* Must be done before init_buffer */ |
/* Must be done before init_buffer. */ |
1113 |
init_casetab_once (); |
init_casetab_once (); |
1114 |
init_buffer_once (); /* Create buffer table and some buffers */ |
init_buffer_once (); /* Create buffer table and some buffers. */ |
1115 |
init_minibuf_once (); /* Create list of minibuffers */ |
init_minibuf_once (); /* Create list of minibuffers. */ |
1116 |
/* Must precede init_window_once */ |
/* Must precede init_window_once. */ |
1117 |
|
|
1118 |
/* Call syms_of_xfaces before init_window_once because that |
/* Call syms_of_xfaces before init_window_once because that |
1119 |
function creates Vterminal_frame. Termcap frames now use |
function creates Vterminal_frame. Termcap frames now use |
1120 |
faces, and the face implementation uses some symbols as |
faces, and the face implementation uses some symbols as |
1142 |
syms_of_data (); |
syms_of_data (); |
1143 |
syms_of_search (); |
syms_of_search (); |
1144 |
syms_of_frame (); |
syms_of_frame (); |
1145 |
|
|
1146 |
x_term_init (); |
x_term_init (); |
1147 |
init_keyboard (); |
init_keyboard (); |
1148 |
#endif |
#endif |
1149 |
|
|
1150 |
init_window_once (); /* Init the window system */ |
init_window_once (); /* Init the window system. */ |
1151 |
init_fileio_once (); /* Must precede any path manipulation. */ |
init_fileio_once (); /* Must precede any path manipulation. */ |
1152 |
} |
} |
1153 |
|
|
1194 |
aren't now decoded; also existing buffers are now made |
aren't now decoded; also existing buffers are now made |
1195 |
unibyte during startup if .emacs sets unibyte. Tested with |
unibyte during startup if .emacs sets unibyte. Tested with |
1196 |
8-bit data in environment variables and /etc/passwd, setting |
8-bit data in environment variables and /etc/passwd, setting |
1197 |
unibyte and Latin-1 in .emacs. -- Dave Love */ |
unibyte and Latin-1 in .emacs. -- Dave Love */ |
1198 |
if (argmatch (argv, argc, "-unibyte", "--unibyte", 4, NULL, &skip_args) |
if (argmatch (argv, argc, "-unibyte", "--unibyte", 4, NULL, &skip_args) |
1199 |
|| argmatch (argv, argc, "-no-multibyte", "--no-multibyte", 4, NULL, &skip_args) |
|| argmatch (argv, argc, "-no-multibyte", "--no-multibyte", 4, NULL, &skip_args) |
1200 |
|| (getenv ("EMACS_UNIBYTE") && !inhibit_unibyte)) |
|| (getenv ("EMACS_UNIBYTE") && !inhibit_unibyte)) |
1302 |
#ifdef WINDOWSNT |
#ifdef WINDOWSNT |
1303 |
/* Initialize environment from registry settings. */ |
/* Initialize environment from registry settings. */ |
1304 |
init_environment (argv); |
init_environment (argv); |
1305 |
init_ntproc (); /* must precede init_editfns */ |
init_ntproc (); /* must precede init_editfns. */ |
1306 |
#endif |
#endif |
1307 |
|
|
1308 |
/* egetenv is a pretty low-level facility, which may get called in |
/* egetenv is a pretty low-level facility, which may get called in |
1317 |
putenv ("LANG=C"); |
putenv ("LANG=C"); |
1318 |
#endif |
#endif |
1319 |
|
|
1320 |
init_buffer (); /* Init default directory of main buffer */ |
init_buffer (); /* Init default directory of main buffer. */ |
1321 |
|
|
1322 |
init_callproc_1 (); /* Must precede init_cmdargs and init_sys_modes. */ |
init_callproc_1 (); /* Must precede init_cmdargs and init_sys_modes. */ |
1323 |
init_cmdargs (argc, argv, skip_args); /* Must precede init_lread. */ |
init_cmdargs (argc, argv, skip_args); /* Must precede init_lread. */ |
1324 |
|
|
1325 |
if (initialized) |
if (initialized) |
1326 |
{ |
{ |
1327 |
/* Erase any pre-dump messages in the message log, to avoid confusion */ |
/* Erase any pre-dump messages in the message log, to avoid confusion. */ |
1328 |
Lisp_Object old_log_max; |
Lisp_Object old_log_max; |
1329 |
old_log_max = Vmessage_log_max; |
old_log_max = Vmessage_log_max; |
1330 |
XSETFASTINT (Vmessage_log_max, 0); |
XSETFASTINT (Vmessage_log_max, 0); |
1340 |
|
|
1341 |
if (!initialized) |
if (!initialized) |
1342 |
{ |
{ |
1343 |
/* The basic levels of Lisp must come first */ |
/* The basic levels of Lisp must come first. */ |
1344 |
/* And data must come first of all |
/* And data must come first of all |
1345 |
for the sake of symbols like error-message */ |
for the sake of symbols like error-message. */ |
1346 |
#ifndef macintosh |
#ifndef macintosh |
1347 |
/* Called before init_window_once for Mac OS. */ |
/* Called before init_window_once for Mac OS. */ |
1348 |
syms_of_data (); |
syms_of_data (); |
1457 |
if (!noninteractive) |
if (!noninteractive) |
1458 |
{ |
{ |
1459 |
#ifdef VMS |
#ifdef VMS |
1460 |
init_vms_input ();/* init_display calls get_frame_size, that needs this */ |
init_vms_input ();/* init_display calls get_frame_size, that needs this. */ |
1461 |
#endif /* VMS */ |
#endif /* VMS */ |
1462 |
init_display (); /* Determine terminal type. init_sys_modes uses results */ |
init_display (); /* Determine terminal type. init_sys_modes uses results. */ |
1463 |
} |
} |
1464 |
#ifndef macintosh |
#ifndef macintosh |
1465 |
/* Called before init_window_once for Mac OS. */ |
/* Called before init_window_once for Mac OS. */ |
1466 |
init_keyboard (); /* This too must precede init_sys_modes */ |
init_keyboard (); /* This too must precede init_sys_modes. */ |
1467 |
#endif |
#endif |
1468 |
#ifdef VMS |
#ifdef VMS |
1469 |
init_vmsproc (); /* And this too. */ |
init_vmsproc (); /* And this too. */ |
1470 |
#endif /* VMS */ |
#endif /* VMS */ |
1471 |
init_sys_modes (); /* Init system terminal modes (RAW or CBREAK, etc.) */ |
init_sys_modes (); /* Init system terminal modes (RAW or CBREAK, etc.). */ |
1472 |
#ifdef HAVE_X_WINDOWS |
#ifdef HAVE_X_WINDOWS |
1473 |
init_xfns (); |
init_xfns (); |
1474 |
#endif /* HAVE_X_WINDOWS */ |
#endif /* HAVE_X_WINDOWS */ |
1489 |
if (!initialized) |
if (!initialized) |
1490 |
{ |
{ |
1491 |
char *file; |
char *file; |
1492 |
/* Handle -l loadup, args passed by Makefile. */ |
/* Handle -l loadup, args passed by Makefile. */ |
1493 |
if (argmatch (argv, argc, "-l", "--load", 3, &file, &skip_args)) |
if (argmatch (argv, argc, "-l", "--load", 3, &file, &skip_args)) |
1494 |
Vtop_level = Fcons (intern ("load"), |
Vtop_level = Fcons (intern ("load"), |
1495 |
Fcons (build_string (file), Qnil)); |
Fcons (build_string (file), Qnil)); |
1524 |
/* Set up for profiling. This is known to work on FreeBSD and |
/* Set up for profiling. This is known to work on FreeBSD and |
1525 |
GNU/Linux. It might work on some other systems too. Give it a |
GNU/Linux. It might work on some other systems too. Give it a |
1526 |
try and tell us if it works on your system. To compile for |
try and tell us if it works on your system. To compile for |
1527 |
profiling use something like `make CFLAGS="-pg -g -O -DPROFILING=1'. */ |
profiling use something like `make CFLAGS="-pg -g -O -DPROFILING=1'. */ |
1528 |
#if defined (__FreeBSD__) || defined (__linux) |
#if defined (__FreeBSD__) || defined (__linux) |
1529 |
#ifdef PROFILING |
#ifdef PROFILING |
1530 |
if (initialized) |
if (initialized) |
1531 |
{ |
{ |
1532 |
extern void _mcleanup (); |
extern void _mcleanup (); |
1533 |
extern char etext; |
extern char etext; |
1534 |
extern void safe_bcopy (); |
extern void safe_bcopy (); |
1535 |
extern void dump_opcode_frequencies (); |
extern void dump_opcode_frequencies (); |
1553 |
zone rather than looking it up every time. Since localtime() is |
zone rather than looking it up every time. Since localtime() is |
1554 |
called to bolt the undumping time into the undumped emacs, this |
called to bolt the undumping time into the undumped emacs, this |
1555 |
results in localtime ignoring the TZ environment variable. |
results in localtime ignoring the TZ environment variable. |
1556 |
This flushes the new TZ value into localtime. */ |
This flushes the new TZ value into localtime. */ |
1557 |
tzset (); |
tzset (); |
1558 |
#endif /* defined (LOCALTIME_CACHE) */ |
#endif /* defined (LOCALTIME_CACHE) */ |
1559 |
|
|
1772 |
if (options[from] > 0) |
if (options[from] > 0) |
1773 |
from += options[from]; |
from += options[from]; |
1774 |
} |
} |
1775 |
|
|
1776 |
if (best < 0) |
if (best < 0) |
1777 |
abort (); |
abort (); |
1778 |
|
|
1806 |
} |
} |
1807 |
|
|
1808 |
DEFUN ("kill-emacs", Fkill_emacs, Skill_emacs, 0, 1, "P", |
DEFUN ("kill-emacs", Fkill_emacs, Skill_emacs, 0, 1, "P", |
1809 |
"Exit the Emacs job and kill it.\n\ |
doc: /* Exit the Emacs job and kill it. |
1810 |
If ARG is an integer, return ARG as the exit program code.\n\ |
If ARG is an integer, return ARG as the exit program code. |
1811 |
If ARG is a string, stuff it as keyboard input.\n\n\ |
If ARG is a string, stuff it as keyboard input. |
1812 |
The value of `kill-emacs-hook', if not void,\n\ |
|
1813 |
is a list of functions (of no args),\n\ |
The value of `kill-emacs-hook', if not void, |
1814 |
all of which are called before Emacs is actually killed.") |
is a list of functions (of no args), |
1815 |
(arg) |
all of which are called before Emacs is actually killed. */) |
1816 |
|
(arg) |
1817 |
Lisp_Object arg; |
Lisp_Object arg; |
1818 |
{ |
{ |
1819 |
struct gcpro gcpro1; |
struct gcpro gcpro1; |
1872 |
/* Prevent running of hooks from now on. */ |
/* Prevent running of hooks from now on. */ |
1873 |
Vrun_hooks = Qnil; |
Vrun_hooks = Qnil; |
1874 |
|
|
1875 |
/* If we are controlling the terminal, reset terminal modes */ |
/* If we are controlling the terminal, reset terminal modes. */ |
1876 |
#ifdef EMACS_HAVE_TTY_PGRP |
#ifdef EMACS_HAVE_TTY_PGRP |
1877 |
{ |
{ |
1878 |
int pgrp = EMACS_GETPGRP (0); |
int pgrp = EMACS_GETPGRP (0); |
1947 |
#ifdef HAVE_SHM |
#ifdef HAVE_SHM |
1948 |
|
|
1949 |
DEFUN ("dump-emacs-data", Fdump_emacs_data, Sdump_emacs_data, 1, 1, 0, |
DEFUN ("dump-emacs-data", Fdump_emacs_data, Sdump_emacs_data, 1, 1, 0, |
1950 |
"Dump current state of Emacs into data file FILENAME.\n\ |
doc: /* Dump current state of Emacs into data file FILENAME. |
1951 |
This function exists on systems that use HAVE_SHM.") |
This function exists on systems that use HAVE_SHM. */) |
1952 |
(filename) |
(filename) |
1953 |
Lisp_Object filename; |
Lisp_Object filename; |
1954 |
{ |
{ |
1955 |
extern char my_edata[]; |
extern char my_edata[]; |
1963 |
Vpurify_flag = Qnil; |
Vpurify_flag = Qnil; |
1964 |
|
|
1965 |
fflush (stdout); |
fflush (stdout); |
1966 |
/* Tell malloc where start of impure now is */ |
/* Tell malloc where start of impure now is. */ |
1967 |
/* Also arrange for warnings when nearly out of space. */ |
/* Also arrange for warnings when nearly out of space. */ |
1968 |
#ifndef SYSTEM_MALLOC |
#ifndef SYSTEM_MALLOC |
1969 |
memory_warnings (my_edata, malloc_warning); |
memory_warnings (my_edata, malloc_warning); |
1978 |
#else /* not HAVE_SHM */ |
#else /* not HAVE_SHM */ |
1979 |
|
|
1980 |
DEFUN ("dump-emacs", Fdump_emacs, Sdump_emacs, 2, 2, 0, |
DEFUN ("dump-emacs", Fdump_emacs, Sdump_emacs, 2, 2, 0, |
1981 |
"Dump current state of Emacs into executable file FILENAME.\n\ |
doc: /* Dump current state of Emacs into executable file FILENAME. |
1982 |
Take symbols from SYMFILE (presumably the file you executed to run Emacs).\n\ |
Take symbols from SYMFILE (presumably the file you executed to run Emacs). |
1983 |
This is used in the file `loadup.el' when building Emacs.\n\ |
This is used in the file `loadup.el' when building Emacs. |
1984 |
\n\ |
|
1985 |
You must run Emacs in batch mode in order to dump it.") |
You must run Emacs in batch mode in order to dump it. */) |
1986 |
(filename, symfile) |
(filename, symfile) |
1987 |
Lisp_Object filename, symfile; |
Lisp_Object filename, symfile; |
1988 |
{ |
{ |
1989 |
extern char my_edata[]; |
extern char my_edata[]; |
2026 |
#ifdef VMS |
#ifdef VMS |
2027 |
mapout_data (XSTRING (filename)->data); |
mapout_data (XSTRING (filename)->data); |
2028 |
#else |
#else |
2029 |
/* Tell malloc where start of impure now is */ |
/* Tell malloc where start of impure now is. */ |
2030 |
/* Also arrange for warnings when nearly out of space. */ |
/* Also arrange for warnings when nearly out of space. */ |
2031 |
#ifndef SYSTEM_MALLOC |
#ifndef SYSTEM_MALLOC |
2032 |
#ifndef WINDOWSNT |
#ifndef WINDOWSNT |
2185 |
defsubr (&Sinvocation_directory); |
defsubr (&Sinvocation_directory); |
2186 |
|
|
2187 |
DEFVAR_LISP ("command-line-args", &Vcommand_line_args, |
DEFVAR_LISP ("command-line-args", &Vcommand_line_args, |
2188 |
"Args passed by shell to Emacs, as a list of strings."); |
doc: /* Args passed by shell to Emacs, as a list of strings. */); |
2189 |
|
|
2190 |
DEFVAR_LISP ("system-type", &Vsystem_type, |
DEFVAR_LISP ("system-type", &Vsystem_type, |
2191 |
"Value is symbol indicating type of operating system you are using."); |
doc: /* Value is symbol indicating type of operating system you are using. */); |
2192 |
Vsystem_type = intern (SYSTEM_TYPE); |
Vsystem_type = intern (SYSTEM_TYPE); |
2193 |
|
|
2194 |
DEFVAR_LISP ("system-configuration", &Vsystem_configuration, |
DEFVAR_LISP ("system-configuration", &Vsystem_configuration, |
2195 |
"Value is string indicating configuration Emacs was built for.\n\ |
doc: /* Value is string indicating configuration Emacs was built for. |
2196 |
On MS-Windows, the value reflects the OS flavor and version on which\n\ |
On MS-Windows, the value reflects the OS flavor and version on which |
2197 |
Emacs is running."); |
Emacs is running. */); |
2198 |
Vsystem_configuration = build_string (EMACS_CONFIGURATION); |
Vsystem_configuration = build_string (EMACS_CONFIGURATION); |
2199 |
|
|
2200 |
DEFVAR_LISP ("system-configuration-options", &Vsystem_configuration_options, |
DEFVAR_LISP ("system-configuration-options", &Vsystem_configuration_options, |
2201 |
"String containing the configuration options Emacs was built with."); |
doc: /* String containing the configuration options Emacs was built with. */); |
2202 |
Vsystem_configuration_options = build_string (EMACS_CONFIG_OPTIONS); |
Vsystem_configuration_options = build_string (EMACS_CONFIG_OPTIONS); |
2203 |
|
|
2204 |
DEFVAR_BOOL ("noninteractive", &noninteractive1, |
DEFVAR_BOOL ("noninteractive", &noninteractive1, |
2205 |
"Non-nil means Emacs is running without interactive terminal."); |
doc: /* Non-nil means Emacs is running without interactive terminal. */); |
2206 |
|
|
2207 |
DEFVAR_LISP ("kill-emacs-hook", &Vkill_emacs_hook, |
DEFVAR_LISP ("kill-emacs-hook", &Vkill_emacs_hook, |
2208 |
"Hook to be run whenever kill-emacs is called.\n\ |
doc: /* Hook to be run whenever kill-emacs is called. |
2209 |
Since kill-emacs may be invoked when the terminal is disconnected (or\n\ |
Since kill-emacs may be invoked when the terminal is disconnected (or |
2210 |
in other similar situations), functions placed on this hook should not\n\ |
in other similar situations), functions placed on this hook should not |
2211 |
expect to be able to interact with the user. To ask for confirmation,\n\ |
expect to be able to interact with the user. To ask for confirmation, |
2212 |
see `kill-emacs-query-functions' instead."); |
see `kill-emacs-query-functions' instead. */); |
2213 |
Vkill_emacs_hook = Qnil; |
Vkill_emacs_hook = Qnil; |
2214 |
|
|
2215 |
empty_string = build_string (""); |
empty_string = build_string (""); |
2217 |
|
|
2218 |
#ifdef SIGUSR1 |
#ifdef SIGUSR1 |
2219 |
DEFVAR_LISP ("signal-USR1-hook", &Vsignal_USR1_hook, |
DEFVAR_LISP ("signal-USR1-hook", &Vsignal_USR1_hook, |
2220 |
"Hook to be run whenever emacs receives a USR1 signal"); |
doc: /* Hook to be run whenever emacs receives a USR1 signal. */); |
2221 |
Vsignal_USR1_hook = Qnil; |
Vsignal_USR1_hook = Qnil; |
2222 |
#ifdef SIGUSR2 |
#ifdef SIGUSR2 |
2223 |
DEFVAR_LISP ("signal-USR2-hook", &Vsignal_USR2_hook, |
DEFVAR_LISP ("signal-USR2-hook", &Vsignal_USR2_hook, |
2224 |
"Hook to be run whenever emacs receives a USR2 signal"); |
doc: /* Hook to be run whenever emacs receives a USR2 signal. */); |
2225 |
Vsignal_USR2_hook = Qnil; |
Vsignal_USR2_hook = Qnil; |
2226 |
#endif |
#endif |
2227 |
#endif |
#endif |
2228 |
|
|
2229 |
|
|
2230 |
DEFVAR_INT ("emacs-priority", &emacs_priority, |
DEFVAR_INT ("emacs-priority", &emacs_priority, |
2231 |
"Priority for Emacs to run at.\n\ |
doc: /* Priority for Emacs to run at. |
2232 |
This value is effective only if set before Emacs is dumped,\n\ |
This value is effective only if set before Emacs is dumped, |
2233 |
and only if the Emacs executable is installed with setuid to permit\n\ |
and only if the Emacs executable is installed with setuid to permit |
2234 |
it to change priority. (Emacs sets its uid back to the real uid.)\n\ |
it to change priority. (Emacs sets its uid back to the real uid.) |
2235 |
Currently, you need to define SET_EMACS_PRIORITY in `config.h'\n\ |
Currently, you need to define SET_EMACS_PRIORITY in `config.h' |
2236 |
before you compile Emacs, to enable the code for this feature."); |
before you compile Emacs, to enable the code for this feature. */); |
2237 |
emacs_priority = 0; |
emacs_priority = 0; |
2238 |
|
|
2239 |
DEFVAR_LISP ("path-separator", &Vpath_separator, |
DEFVAR_LISP ("path-separator", &Vpath_separator, |
2240 |
"The directory separator in search paths, as a string."); |
doc: /* The directory separator in search paths, as a string. */); |
2241 |
{ |
{ |
2242 |
char c = SEPCHAR; |
char c = SEPCHAR; |
2243 |
Vpath_separator = make_string (&c, 1); |
Vpath_separator = make_string (&c, 1); |
2244 |
} |
} |
2245 |
|
|
2246 |
DEFVAR_LISP ("invocation-name", &Vinvocation_name, |
DEFVAR_LISP ("invocation-name", &Vinvocation_name, |
2247 |
"The program name that was used to run Emacs.\n\ |
doc: /* The program name that was used to run Emacs. |
2248 |
Any directory names are omitted."); |
Any directory names are omitted. */); |
2249 |
|
|
2250 |
DEFVAR_LISP ("invocation-directory", &Vinvocation_directory, |
DEFVAR_LISP ("invocation-directory", &Vinvocation_directory, |
2251 |
"The directory in which the Emacs executable was found, to run it.\n\ |
doc: /* The directory in which the Emacs executable was found, to run it. |
2252 |
The value is nil if that directory's name is not known."); |
The value is nil if that directory's name is not known. */); |
2253 |
|
|
2254 |
DEFVAR_LISP ("installation-directory", &Vinstallation_directory, |
DEFVAR_LISP ("installation-directory", &Vinstallation_directory, |
2255 |
"A directory within which to look for the `lib-src' and `etc' directories.\n\ |
doc: /* A directory within which to look for the `lib-src' and `etc' directories. |
2256 |
This is non-nil when we can't find those directories in their standard\n\ |
This is non-nil when we can't find those directories in their standard |
2257 |
installed locations, but we can find them\n\ |
installed locations, but we can find them |
2258 |
near where the Emacs executable was found."); |
near where the Emacs executable was found. */); |
2259 |
Vinstallation_directory = Qnil; |
Vinstallation_directory = Qnil; |
2260 |
|
|
2261 |
DEFVAR_LISP ("system-messages-locale", &Vsystem_messages_locale, |
DEFVAR_LISP ("system-messages-locale", &Vsystem_messages_locale, |
2262 |
"System locale for messages."); |
doc: /* System locale for messages. */); |
2263 |
Vsystem_messages_locale = Qnil; |
Vsystem_messages_locale = Qnil; |
2264 |
|
|
2265 |
DEFVAR_LISP ("previous-system-messages-locale", |
DEFVAR_LISP ("previous-system-messages-locale", |
2266 |
&Vprevious_system_messages_locale, |
&Vprevious_system_messages_locale, |
2267 |
"Most recently used system locale for messages."); |
doc: /* Most recently used system locale for messages. */); |
2268 |
Vprevious_system_messages_locale = Qnil; |
Vprevious_system_messages_locale = Qnil; |
2269 |
|
|
2270 |
DEFVAR_LISP ("system-time-locale", &Vsystem_time_locale, |
DEFVAR_LISP ("system-time-locale", &Vsystem_time_locale, |
2271 |
"System locale for time."); |
doc: /* System locale for time. */); |
2272 |
Vsystem_time_locale = Qnil; |
Vsystem_time_locale = Qnil; |
2273 |
|
|
2274 |
DEFVAR_LISP ("previous-system-time-locale", &Vprevious_system_time_locale, |
DEFVAR_LISP ("previous-system-time-locale", &Vprevious_system_time_locale, |
2275 |
"Most recently used system locale for time."); |
doc: /* Most recently used system locale for time. */); |
2276 |
Vprevious_system_time_locale = Qnil; |
Vprevious_system_time_locale = Qnil; |
2277 |
} |
} |