annotate src/emacs.c @ 1284:4742a5797146

Password: Last login: Tue Sep 29 20:00:25 from paris.CS.Berkele 4.3 BSD UNIX #1: Fri Dec 1 20:30:54 EST 1989 This machine belongs to the GNU project. Feel free to use it. Send questions, requests, or other remarks to request@gnu.ai.mit.edu The GNU Project does not have the physical resources to "host" random games and IRC daemons on its machines. They tie up computing resources needed to develop software and further GNU. They have become a real hassle for us, so please don't run them. /home/fsg is full. Do the right thing. Guests: please don't use the hp300 machines for games, IRC, or news. You are welcome to use them for other purposes as long as a staff member doesn't ask you to log out and use another host. The hp300s include wookumz, churchy, geech, and mole. Machines which may be used for just about any purpose include hal, wombat, kropotkin, goldman, and hill. You have mail. This is a -bash login shell. No DISPLAY variable here... jla@churchy$ pwd /home/fsf/jla jla@churchy$ cd src /gd/gnu/emacs/19.0/src jla@churchy$ gdb xemacs GDB is free software and you are welcome to distribute copies of it under certain conditions; type "show copying" to see the conditions. There is absolutely no warranty for GDB; type "show warranty" for details. GDB 4.6, Copyright 1992 Free Software Foundation, Inc... TERMCAP and TERM environment variables unset. Environment variable "DISPLAY" not defined. Breakpoint 1 at 0x7d6ec Breakpoint 2 at 0x77310 (gdb) set env DISPLAY 128.32.150.43:0.0 (gdb) r Starting program: /home/gd/gnu/emacs/19.0/src/xemacs -q Cannot insert breakpoint 1: The same program may be running in another process. Cannot access memory at address 0x7d6ec. (gdb) [1]+ Stopped gdb xemacs jla@churchy$ ps x PID TT STAT TIME COMMAND 29053 p7 S 0:05 -bash (bash) 29074 p7 T 0:04 gdb xemacs 29075 p7 T 0:00 /home/gd/gnu/emacs/19.0/src/xemacs -q 29076 p7 R 0:00 ps x jla@churchy$ ps ax PID TT STAT TIME COMMAND 0 ? D 0:36 swapper 1 ? I 0:01 init 2 ? D 0:03 pagedaemon 49 ? S 15:02 syslogd 50 ? I 0:58 portmap 60 ? I 0:12 -accepting connections (sendmail) 64 ? S < 0:53 /usr/local/etc/ntpd 67 ? I 0:01 /usr/bin/X11/xdm 97 ? I 0:19 cron 101 ? S 2:22 /usr/etc/rwhod 103 ? I 2:45 /etc/inetd 106 ? IW 0:00 /usr/lib/lpd 145 ? IW 0:00 (nfsd) 146 ? IW 0:00 (nfsd) 147 ? IW 0:00 (nfsd) 148 ? IW 0:00 (nfsd) 152 ? IW 1:38 (biod) 153 ? IW 1:40 (biod) 154 ? IW 1:41 (biod) 155 ? IW 1:40 (biod) 2925 ? IW 0:00 rpc.mountd 5255 ? I 11:14 ibble 24806 ? S 19:37 /usr/bin/X11/X :0 28913 ? I 0:00 -:0 (xdm) 28924 ? I 0:01 sh /home/fsf/melissa/.xinitrc 28932 ? I 0:00 xterm -C -ut +sb -n Console -geometry 80x24+1+0 28933 ? I 0:00 xbiff -geometry -140+180 28934 ? S 0:02 xclock -analog -geometry -0+180 28935 ? S 0:02 xclock -digital -geometry 85x17-0+280 28936 ? I 0:54 emacs -wn Mail -in Mail -geometry 80x55+35+18 -f rmail -fon 28937 ? I 0:01 twm 28940 ? I 0:00 /usr/local/lib/emacs/etc/wakeup 60 28951 ? I 0:11 emacs -d :0.0 -w 28952 ? I 0:00 /usr/local/lib/emacs/etc/wakeup 60 29024 ? I 0:09 emacs -d :0.0 -w 29025 ? I 0:00 /usr/local/lib/emacs/etc/wakeup 60 29045 ? I 0:00 -AA29035 mizzou1.missouri.edu: user open (sendmail) 28938 p0 I 0:00 bash 28942 p1 I 0:00 /usr/local/gnubin/bash -i 28943 p2 I 0:00 -sh (csh) 28953 p3 I 0:00 /usr/local/gnubin/bash -i 28954 p4 I 0:00 -sh (csh) 29026 p5 I 0:00 /usr/local/gnubin/bash -i 560 p6 I 0:08 .nbin/mr 29027 p6 I 0:00 -sh (csh) 29052 p7 S 0:00 rlogind 29053 p7 S 0:05 -bash (bash) 29074 p7 T 0:04 gdb xemacs 29075 p7 T 0:00 /home/gd/gnu/emacs/19.0/src/xemacs -q 29077 p7 R 0:00 ps ax 5256 q0 IW 0:00 -bin/csh (csh) 5272 q0 S 6:38 tf2 5261 q1 IW 0:00 -bin/csh (csh) 5266 q2 IW 0:00 -bin/csh (csh) 15329 q2 I 7:27 emacs -f gnus 15330 q2 I 0:01 /usr/local/lib/emacs/etc/wakeup 60 95 ? S 2:22 update 157 ? IW 0:00 - 300h console (getty) jla@churchy$ fg gdb xemacs (gdb) r The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /home/gd/gnu/emacs/19.0/src/xemacs -q Cannot insert breakpoint 1: The same program may be running in another process. Cannot access memory at address 0x7d6ec. (gdb) dis (gdb) r The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /home/gd/gnu/emacs/19.0/src/xemacs -q Program received signal 2, Interrupt 0x83ffe in select () (gdb) b Fsignal Breakpoint 3 at 0x503da: file eval.c, line 1105. (gdb) c Continuing. Cannot insert breakpoint 3: The same program may be running in another process. Cannot access memory at address 0x503da. (gdb) dis (gdb) c Continuing. Program received signal 2, Interrupt 0x83ffe in select () (gdb) k` Kill the inferior process? (y or n) y (gdb) q jla@churchy$ who jla ttyp7 Sep 30 14:10 (priam.CS.Berkele) melissa :0 Sep 30 13:41 jla@churchy$ ll *emacs* -rwxrwxrwx 1 jimb daemon 2464158 Sep 27 23:33 emacs-19.0.437* -rwxrwxrwx 1 jimb daemon 2464135 Sep 28 02:19 emacs-19.0.438* -rwxrwxrwx 1 rms daemon 2464283 Sep 28 09:08 emacs-19.0.439* -rwxrwxrwx 1 jimb daemon 2464480 Sep 29 00:59 emacs-19.0.440* -rwxrwxrwx 1 jimb daemon 2465827 Sep 29 09:24 emacs-19.0.444* -rwxrwxrwx 1 jimb daemon 2466058 Sep 29 10:16 emacs-19.0.445* -rwxrwxrwx 1 jimb daemon 2466058 Sep 29 10:35 emacs-19.0.446* -rwxrwxrwx 1 jimb daemon 2466070 Sep 29 13:18 emacs-19.0.447* -rwxrwxrwx 1 jimb daemon 2462257 Sep 30 11:00 emacs-19.0.448* -rwxrwxrwx 2 jimb daemon 2462209 Sep 30 11:16 emacs-19.0.449* -rwxrwxrwx 1 jimb daemon 2462194 Sep 30 11:57 emacs-19.0.450* -rwxrwxrwx 2 jimb daemon 2466524 Sep 30 12:19 emacs-19.0.451* -r--r--r-- 1 jimb daemon 20265 Sep 22 23:40 emacs.c -rw-rw-rw- 1 rms daemon 18316 Sep 23 08:15 emacs.o -rwxrwxrwx 1 jimb daemon 2466070 Sep 29 14:36 jimb-xemacs* -rwxrwxrwx 1 jimb daemon 2097884 Sep 30 12:17 temacs* -rwxrwxrwx 1 jimb daemon 1822178 Sep 13 09:31 temacs-2* -rw-rw-rw- 1 jimb daemon 784 Sep 18 1988 temacs.opt -rw-rw-rw- 1 jimb daemon 177 Feb 26 1987 testemacs.com -rwxrwxrwx 2 jimb daemon 2466524 Sep 30 12:19 xemacs* -rwxrwxrwx 1 jla daemon 2463040 Sep 23 17:15 yemacs* jla@churchy$ rm yemacs jla@churchy$ cp xemacs yemacs & [1] 29088 jla@churchy$ more ChangeLog Wed Sep 30 06:59:07 1992 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) * buffer.c (Fother_buffer): Add back the VISIBLE_OK argument. It got removed with no comment or ChangeLog entry, and append-to-buffer uses it. * window.c (struct save_window_data): Add a member called focus_frame, to save and restore the screen's focus frame. (Fset_window_configuration): Redirect the frame's focus as indicated in the window configuration. (Fcurrent_window_configuration): Record the frame's current focus. * minibuf.c (read_minibuf): Don't bother to save the current frame's focus, and have read_minibuf_unwind restore it; saving and restoring the window configurations will take care of that. (read_minibuf_unwind): Don't worry about restoring the frame's focus. * window.c (Fset_window_configuration): Don't select the frame just because we restored its configuration. * window.c (Fset_window_configuration): Don't forget to set the frame's selected window when we can't call Fselect_window. * xterm.c (x_meta_mod_mask): New variable, indicating which X modifier bits denote meta keys. (x_find_modifier_meanings): New function, to set x_meta_mod_mask. (x_convert_modifiers): Use that. (x_term_init): Call x_find_modifier_meanings. * data.c (Fmake_local_variable): If SYM forwards to a C variable, swap in the value for the current buffer immediately. * lisp.h: Doc elaboration for Lisp_Buffer_Local_Value. Tue Sep 29 21:05:30 1992 Joseph Arceneaux (jla@churchy.gnu.ai.mit.edu) * textprop.c (Ferase_text_properties): Merge intervals when possible. Tue Sep 29 00:04:05 1992 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu) * xselect.c (Qcut_buffer0): Symbol removed; we're using a new interface to the cut buffer now. (NUM_CUT_BUFFERS, cut_buffer_atom, cut_buffer_value, cut_buffer_cached, cut_buffer_just_set): New variables. (Fx_own_selection, Fx_selection_value): Dike out the code to handle CUT_BUFFER0 requests. (Fx_get_cut_buffer, Fx_set_cut_buffer, x_watch_cut_buffer_cache, x_invalidate_cut_buffer_cache): New functions. [1]+ Exit 0 cp xemacs yemacs jla@churchy$ gdb yemacs GDB is free software and you are welcome to distribute copies of it under certain conditions; type "show copying" to see the conditions. There is absolutely no warranty for GDB; type "show warranty" for details. GDB 4.6, Copyright 1992 Free Software Foundation, Inc... TERMCAP and TERM environment variables unset. Environment variable "DISPLAY" not defined. Breakpoint 1 at 0x7d6ec Breakpoint 2 at 0x77310 (gdb) b Fsignal Breakpoint 3 at 0x503da: file eval.c, line 1105. (gdb) set env DISPLAY 128.32.150.43:0.0 (gdb) r Starting program: /home/gd/gnu/emacs/19.0/src/yemacs -q Breakpoint 3, Fsignal (sig=17759556, data=17759236) at eval.c:1105 1105 register struct handler *allhandlers = handlerlist; (gdb) c Continuing. Breakpoint 3, Fsignal (sig=17759576, data=84996828) at eval.c:1105 1105 register struct handler *allhandlers = handlerlist; (gdb) bt #0 Fsignal (sig=17759576, data=84996828) at eval.c:1105 #1 0x4664a in wrong_type_argument (predicate=17803608, value=987136) at data.c:73 #2 0x4572 in Fredirect_frame_focus (frame=987136, focus_frame=235868160) at frame.c:893 #3 0xe114 in Fset_window_configuration (configuration=353327296) at window.c:2498 #4 0x524aa in unbind_to (count=7, value=51516952) at eval.c:2111 #5 0xe61c in Fsave_window_excursion (args=84526412) at window.c:2683 #6 0x60cd4 in Fbyte_code (bytestr=50971960, vector=67749184, maxdepth=1) at bytecode.c:555 #7 0x521a8 in funcall_lambda (fun=101303552, nargs=2, arg_vector=0xffeff7ae) at eval.c:2032 #8 0x51c42 in Ffuncall (nargs=3, args=0xffeff7aa) at eval.c:1898 #9 0x607c8 in Fbyte_code (bytestr=50977256, vector=67754576, maxdepth=5) at bytecode.c:422 #10 0x521a8 in funcall_lambda (fun=101308856, nargs=1, arg_vector=0xffeff8ee) at eval.c:2032 #11 0x51c42 in Ffuncall (nargs=2, args=0xffeff8ea) at eval.c:1898 #12 0x4e980 in Fcall_interactively (function=17914640, record=17759236) at callint.c:508 #13 0x24090 in Fcommand_execute (cmd=17914640, record=17759236) at keyboard.c:3025 #14 0x21028 in command_loop_1 () at keyboard.c:973 #15 0x50370 in internal_condition_case (bfun=0x2084c <command_loop_1>, handlers=17759536, hfun=0x20304 <cmd_error>) at eval.c:1083 #16 0x2066a in command_loop_2 () at keyboard.c:701 #17 0x4fece in internal_catch (tag=17759516, func=0x2064e <command_loop_2>, arg=17759236) at eval.c:875 #18 0x2062e in command_loop () at keyboard.c:681 #19 0x201ca in recursive_edit_1 () at keyboard.c:523 #20 0x20298 in Frecursive_edit () at keyboard.c:558 #21 0x1fa36 in main (argc=2, argv=0xffeffce4, envp=0xffeffcf0) at emacs.c:581 (gdb) fr 2 #2 0x4572 in Fredirect_frame_focus (frame=987136, focus_frame=235868160) at frame.c:893 893 CHECK_LIVE_FRAME (frame, 0); (gdb) l 888 This is useful for temporarily redirecting keystrokes to the minibuffer\n\ 889 window when a frame doesn't have its own minibuffer.") 890 (frame, focus_frame) 891 Lisp_Object frame, focus_frame; 892 { 893 CHECK_LIVE_FRAME (frame, 0); 894 895 if (NILP (focus_frame)) 896 focus_frame = frame; 897 else (gdb) 898 CHECK_LIVE_FRAME (focus_frame, 1); 899 900 XFRAME (frame)->focus_frame = focus_frame; 901 902 if (frame_rehighlight_hook) 903 (*frame_rehighlight_hook) (); 904 jla@churchy$ l elisp/ jla-src/ v19-src/ jla@churchy$ cd v19-src/ jla@churchy$ grep INTERVAL lisp.h #ifdef USE_INTERVALS typedef struct interval *INTERVAL; #define DECLARE_INTERVALS INTERVAL intervals; #define INITIALIZE_INTERVAL(ptr,val) ptr->intervals = val #define INTERVAL #define DECLARE_INTERVALS #define INITIALIZE_INTERVAL(ptr,val) #endif /* USE_INTERVALS */ DECLARE_INTERVALS jla@churchy$ grep INTERVAL config.h /* Define USE_INTERVALS to handle fat text. */ #define USE_INTERVALS jla@churchy$ d /gd2/jla/v19-src jla@churchy$ pwd /home/gd2/jla/v19-src jla@churchy$ grep DECLARE_INTERVALS *.[ch] buffer.h: DECLARE_INTERVALS lisp.h:#define DECLARE_INTERVALS INTERVAL intervals; lisp.h:#define DECLARE_INTERVALS lisp.h: DECLARE_INTERVALS jla@churchy$ grep INITIALIZE_INTERVAL *.c alloc.c: INITIALIZE_INTERVAL (XSTRING (val), NULL_INTERVAL); alloc.c: INITIALIZE_INTERVAL (XSTRING (new), NULL_INTERVAL); buffer.c: INITIALIZE_INTERVAL (b, NULL_INTERVAL); buffer.c: INITIALIZE_INTERVAL (b, NULL_INTERVAL); jla@churchy$ pwd /home/gd2/jla/v19-src jla@churchy$ cd etc /gd/gnu/emacs/19.0/etc jla@churchy$ l *.c /usr/local/gnubin/ls: *.c: No such file or directory jla@churchy$ more Makefile DESTDIR= LIBDIR=/usr/local/lib BINDIR=/usr/local/bin MANDIR=/usr/man/man1 MANEXT=1 all: distclean: -rm -f *~ \#* DOC* core clean: -rm -f core jla@churchy$ cd .. jla@churchy$ l ChangeLog README.~3~ info/ ChangeLog~ README.~6~ lib-src/ GETTING.GNU.SOFTWARE README.~7~ lisp/ GETTING.GNU.SOFTWARE.~1~ arch-lib/ local-lisp/ GETTING.GNU.SOFTWARE.~2~ build-install* lock/ INSTALL build-install.in* make-dist* INSTALL.~1~ build-install.in,v* make-dist.~10~* INSTALL.~2~ config.emacs.~1~* make-dist.~11~* jla@churchy$ cd src /gd/gnu/emacs/19.0/src jla@churchy$ make -f xmakefile editfns.o make: `editfns.o' is up to date. jla@churchy$ ll editfns.[co] -rw-r--r-- 1 jla daemon 36258 Sep 30 20:39 editfns.c -rw-rw-rw- 1 jla daemon 38383 Sep 30 20:43 editfns.o jla@churchy$ date Wed Sep 30 20:45:25 EDT 1992 jla@churchy$ rm editfns.o jla@churchy$ make -f xmakefile editfns.o cc -g -Demacs -Is -Im -c editfns.c -o editfns.o jla@churchy$ lt {insdel,emacs,buffer}.[co] -rw-rw-rw- 1 jla daemon 16422 Sep 30 20:42 insdel.o -rw-rw-rw- 1 rms daemon 18316 Sep 30 20:40 emacs.o -rw-r--r-- 1 jla daemon 14931 Sep 30 19:54 insdel.c -rw-r--r-- 1 jla daemon 20387 Sep 30 19:33 emacs.c -rw-rw-rw- 1 jla daemon 44674 Sep 30 19:29 buffer.o -r--r--r-- 1 jimb daemon 56614 Sep 30 14:13 buffer.c jla@churchy$ ll buffer.h -rw-r--r-- 1 jla daemon 14323 Sep 30 18:36 buffer.h jla@churchy$ ll temacs -rw-rw-rw- 1 jimb daemon 313564 Sep 30 20:46 temacs jla@churchy$ man rcs jla@churchy$ man rlog jla@churchy$ rlog RCS/buffer.c,v RCS file: RCS/buffer.c,v Working file: buffer.c head: 1.15 branch: locks: strict access list: symbolic names: comment leader: " * " keyword substitution: kv total revisions: 15; selected revisions: 15 description: /* Buffer manipulation primitives for GNU Emacs. ---------------------------- revision 1.15 date: 1992/09/30 18:16:11; author: jimb; state: Exp; lines: +9 -5 * buffer.c (Fother_buffer): Add back the VISIBLE_OK argument. It got removed with no comment or ChangeLog entry, and append-to-buffer uses it. ---------------------------- revision 1.14 date: 1992/09/29 04:54:28; author: jimb; state: Exp; lines: +1 -1 * data.c (Frem): Use the `fmod' function under SunOS, Ultrix, and HP/UX, not just under USG systems. ---------------------------- revision 1.13 date: 1992/09/29 04:08:04; author: jimb; state: Exp; lines: +20 -14 * buffer.c (Fbury_buffer): This used to undisplay the buffer being buried only if the BUFFER argument was nil. Instead, undisplay the buffer whenever it's displayed in the selected window, no matter how it was specified by BUFFER. This is how it behaves in 18.58, and I can't find any ChangeLog entry in 18.58 or 19.0 saying why they differ. Fix the doc string accordingly. ---------------------------- revision 1.12 date: 1992/09/22 05:16:47; author: jimb; state: Exp; lines: +1 -0 * buffer.c (Fget_buffer_create): Doc fix. jla@churchy$ d /gd/gnu/emacs/19.0/src jla@churchy$ ci editfns.c insdel.c emacs.c buffer.h intervals.h intervals.c tex tprop.c RCS/editfns.c,v <-- editfns.c new revision: 1.14; previous revision: 1.13 enter log message, terminated with single '.' or end of file: >> >> * editfns.c (make_buffer_string): Call copy_intervals_to_string(). (Finsert_buffer_substring): Call graft_intervals_into_buffer(). #include "intervals.h". >> >> >> . done RCS/insdel.c,v <-- insdel.c new revision: 1.5; previous revision: 1.4 reuse log message of previous file? [yn](y): n enter log message, terminated with single '.' or end of file: >> * insdel.c: #include "intervals.h" (prepare_to_modify_buffer): Call verify_interval_modification(). (insert_from_string): Call offset_intervals() and graft_intervals_into_buffer(). (del_range): Call offset_intervals(). (insert): Call offset_interv>> >> >> >> >> als(). >> . done
author Joseph Arceneaux <jla@gnu.org>
date Thu, 01 Oct 1992 00:56:11 +0000
parents 3d1bf36f0896
children b74d9663f9a6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1 /* Fully extensible Emacs, running on Unix, intended for GNU.
587
1c2d1836941a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 554
diff changeset
2 Copyright (C) 1985, 1986, 1987, 1992 Free Software Foundation, Inc.
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4 This file is part of GNU Emacs.
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6 GNU Emacs is free software; you can redistribute it and/or modify
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7 it under the terms of the GNU General Public License as published by
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
8 the Free Software Foundation; either version 1, or (at your option)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9 any later version.
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11 GNU Emacs is distributed in the hope that it will be useful,
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 GNU General Public License for more details.
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 along with GNU Emacs; see the file COPYING. If not, write to
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
19
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21 #include <signal.h>
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
22 #include <errno.h>
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
23
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
24 #include "config.h"
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
25 #include <stdio.h>
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
26
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
27 #include <sys/types.h>
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
28 #include <sys/file.h>
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
29
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
30 #ifdef VMS
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
31 #include <ssdef.h>
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
32 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
33
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
34 #ifdef BSD
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
35 #include <sys/ioctl.h>
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
36 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
37
505
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
38 #ifdef HAVE_TERMIOS
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
39 #include <termios.h>
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
40 #endif
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
41
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
42 #ifdef APOLLO
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
43 #ifndef APOLLO_SR10
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
44 #include <default_acl.h>
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
45 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
46 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
47
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
48 #include "lisp.h"
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
49 #include "commands.h"
1284
4742a5797146 Password:
Joseph Arceneaux <jla@gnu.org>
parents: 1202
diff changeset
50 #include "intervals.h"
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
51
1043
ee6f647ac103 * emacs.c: Incude "systty.h", not "systerm.h".
Jim Blandy <jimb@redhat.com>
parents: 1004
diff changeset
52 #include "systty.h"
554
e14686fb979e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 505
diff changeset
53
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
54 #ifndef O_RDWR
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
55 #define O_RDWR 2
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
56 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
57
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
58 #define PRIO_PROCESS 0
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
59
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
60 /* Command line args from shell, as list of strings */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
61 Lisp_Object Vcommand_line_args;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
62
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 638
diff changeset
63 /* Hook run by `kill-emacs' before it does really anything. */
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 638
diff changeset
64 Lisp_Object Vkill_emacs_hook;
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 638
diff changeset
65
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
66 /* Set nonzero after Emacs has started up the first time.
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
67 Prevents reinitialization of the Lisp world and keymaps
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
68 on subsequent starts. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
69 int initialized;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
70
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
71 /* Variable whose value is symbol giving operating system type */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
72 Lisp_Object Vsystem_type;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
73
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
74 /* If non-zero, emacs should not attempt to use an window-specific code,
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
75 but instead should use the virtual terminal under which it was started */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
76 int inhibit_window_system;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
77
1202
3d1bf36f0896 * emacs.c (emacs_priority): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1141
diff changeset
78 /* If nonzero, set Emacs to run at this priority. This is also used
3d1bf36f0896 * emacs.c (emacs_priority): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1141
diff changeset
79 in child_setup and sys_suspend to make sure subshells run at normal
3d1bf36f0896 * emacs.c (emacs_priority): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1141
diff changeset
80 priority; Those functions have their own extern declaration. */
1141
d4f6d7467916 (main): Use X menu code if HAVE_X_WINDOWS and not NO_X_MENU.
Richard M. Stallman <rms@gnu.org>
parents: 1074
diff changeset
81 int emacs_priority;
d4f6d7467916 (main): Use X menu code if HAVE_X_WINDOWS and not NO_X_MENU.
Richard M. Stallman <rms@gnu.org>
parents: 1074
diff changeset
82
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
83 #ifdef HAVE_X_WINDOWS
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
84 /* If non-zero, -d was specified, meaning we're using some window system. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
85 int display_arg;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
86 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
87
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
88 /* An address near the bottom of the stack.
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
89 Tells GC how to save a copy of the stack. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
90 char *stack_bottom;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
91
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
92 #ifdef HAVE_X_WINDOWS
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
93 extern Lisp_Object Vwindow_system;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
94 #endif /* HAVE_X_WINDOWS */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
95
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
96 #ifdef USG_SHARED_LIBRARIES
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
97 /* If nonzero, this is the place to put the end of the writable segment
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
98 at startup. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
99
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
100 unsigned int bss_end = 0;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
101 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
102
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
103 /* Nonzero means running Emacs without interactive terminal. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
104
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
105 int noninteractive;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
106
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
107 /* Value of Lisp variable `noninteractive'.
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
108 Normally same as C variable `noninteractive'
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
109 but nothing terrible happens if user sets this one. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
110
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
111 int noninteractive1;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
112
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
113 /* Signal code for the fatal signal that was received */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
114 int fatal_error_code;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
115
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
116 /* Nonzero if handling a fatal error already */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
117 int fatal_error_in_progress;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
118
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
119 /* Handle bus errors, illegal instruction, etc. */
505
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
120 SIGTYPE
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
121 fatal_error_signal (sig)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
122 int sig;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
123 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
124 fatal_error_code = sig;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
125 signal (sig, SIG_DFL);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
126
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
127 /* If fatal error occurs in code below, avoid infinite recursion. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
128 if (fatal_error_in_progress)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
129 kill (getpid (), fatal_error_code);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
130
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
131 fatal_error_in_progress = 1;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
132
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
133 /* If we are controlling the terminal, reset terminal modes */
554
e14686fb979e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 505
diff changeset
134 #ifdef EMACS_HAVE_TTY_PGRP
505
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
135 {
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
136 int tpgrp;
554
e14686fb979e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 505
diff changeset
137 if (EMACS_GET_TTY_PGRP (0, &tpgrp) != -1
505
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
138 && tpgrp == getpgrp (0))
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
139 {
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
140 reset_sys_modes ();
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
141 if (sig != SIGTERM)
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
142 fprintf (stderr, "Fatal error (%d).", sig);
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
143 }
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
144 }
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
145 #endif /* uses pgrp */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
146
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
147 /* Clean up */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
148 kill_buffer_processes (Qnil);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
149 Fdo_auto_save (Qt, Qnil);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
150
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
151 #ifdef CLASH_DETECTION
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
152 unlock_all_files ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
153 #endif /* CLASH_DETECTION */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
154
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
155 #ifdef VMS
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
156 kill_vms_processes ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
157 LIB$STOP (SS$_ABORT);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
158 #else
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
159 /* Signal the same code; this time it will really be fatal. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
160 kill (getpid (), fatal_error_code);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
161 #endif /* not VMS */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
162 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
163
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
164 /* Code for dealing with Lisp access to the Unix command line */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
165
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
166 static
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
167 init_cmdargs (argc, argv, skip_args)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
168 int argc;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
169 char **argv;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
170 int skip_args;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
171 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
172 register int i;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
173
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
174 Vcommand_line_args = Qnil;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
175
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
176 for (i = argc - 1; i >= 0; i--)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
177 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
178 if (i == 0 || i > skip_args)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
179 Vcommand_line_args
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
180 = Fcons (build_string (argv[i]), Vcommand_line_args);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
181 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
182 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
183
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
184 #ifdef VMS
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
185 #ifdef LINK_CRTL_SHARE
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
186 #ifdef SHAREABLE_LIB_BUG
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
187 extern noshare char **environ;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
188 #endif /* SHAREABLE_LIB_BUG */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
189 #endif /* LINK_CRTL_SHARE */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
190 #endif /* VMS */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
191
1061
06b98c795200 (__do_global_ctors, __do_global_ctors_aux): New dummy fns.
Richard M. Stallman <rms@gnu.org>
parents: 1043
diff changeset
192 /* We don't include crtbegin.o and crtend.o in the link,
06b98c795200 (__do_global_ctors, __do_global_ctors_aux): New dummy fns.
Richard M. Stallman <rms@gnu.org>
parents: 1043
diff changeset
193 so these functions and variables might be missed.
06b98c795200 (__do_global_ctors, __do_global_ctors_aux): New dummy fns.
Richard M. Stallman <rms@gnu.org>
parents: 1043
diff changeset
194 Provide dummy definitions to avoid error.
06b98c795200 (__do_global_ctors, __do_global_ctors_aux): New dummy fns.
Richard M. Stallman <rms@gnu.org>
parents: 1043
diff changeset
195 (We don't have any real constructors or destructors.) */
06b98c795200 (__do_global_ctors, __do_global_ctors_aux): New dummy fns.
Richard M. Stallman <rms@gnu.org>
parents: 1043
diff changeset
196 #ifdef __GNUC__
1070
b0f508376593 (__main): New dummy function.
Richard M. Stallman <rms@gnu.org>
parents: 1061
diff changeset
197 __do_global_ctors ()
b0f508376593 (__main): New dummy function.
Richard M. Stallman <rms@gnu.org>
parents: 1061
diff changeset
198 {}
b0f508376593 (__main): New dummy function.
Richard M. Stallman <rms@gnu.org>
parents: 1061
diff changeset
199 __do_global_ctors_aux ()
1061
06b98c795200 (__do_global_ctors, __do_global_ctors_aux): New dummy fns.
Richard M. Stallman <rms@gnu.org>
parents: 1043
diff changeset
200 {}
1074
ab1964dc212c (__do_global_dtors): New dummy function.
Richard M. Stallman <rms@gnu.org>
parents: 1070
diff changeset
201 __do_global_dtors ()
ab1964dc212c (__do_global_dtors): New dummy function.
Richard M. Stallman <rms@gnu.org>
parents: 1070
diff changeset
202 {}
1070
b0f508376593 (__main): New dummy function.
Richard M. Stallman <rms@gnu.org>
parents: 1061
diff changeset
203 char * __CTOR_LIST__[2] = { (char *) (-1), 0 };
b0f508376593 (__main): New dummy function.
Richard M. Stallman <rms@gnu.org>
parents: 1061
diff changeset
204 char * __DTOR_LIST__[2] = { (char *) (-1), 0 };
b0f508376593 (__main): New dummy function.
Richard M. Stallman <rms@gnu.org>
parents: 1061
diff changeset
205 __main ()
1061
06b98c795200 (__do_global_ctors, __do_global_ctors_aux): New dummy fns.
Richard M. Stallman <rms@gnu.org>
parents: 1043
diff changeset
206 {}
06b98c795200 (__do_global_ctors, __do_global_ctors_aux): New dummy fns.
Richard M. Stallman <rms@gnu.org>
parents: 1043
diff changeset
207 #endif /* __GNUC__ */
06b98c795200 (__do_global_ctors, __do_global_ctors_aux): New dummy fns.
Richard M. Stallman <rms@gnu.org>
parents: 1043
diff changeset
208
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
209 /* ARGSUSED */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
210 main (argc, argv, envp)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
211 int argc;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
212 char **argv;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
213 char **envp;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
214 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
215 char stack_bottom_variable;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
216 int skip_args = 0;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
217 extern int errno;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
218 extern sys_nerr;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
219 extern char *sys_errlist[];
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
220 extern void malloc_warning ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
221
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
222 /* Map in shared memory, if we are using that. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
223 #ifdef HAVE_SHM
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
224 if (argc > 1 && !strcmp (argv[1], "-nl"))
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
225 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
226 map_in_data (0);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
227 /* The shared memory was just restored, which clobbered this. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
228 skip_args = 1;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
229 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
230 else
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
231 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
232 map_in_data (1);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
233 /* The shared memory was just restored, which clobbered this. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
234 skip_args = 0;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
235 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
236 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
237
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
238 #ifdef HAVE_X_WINDOWS
348
17ca8766781a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 284
diff changeset
239 /* Stupid kludge to catch command-line display spec. We can't
17ca8766781a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 284
diff changeset
240 handle this argument entirely in window system dependent code
17ca8766781a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 284
diff changeset
241 because we don't even know which window system dependent code
17ca8766781a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 284
diff changeset
242 to run until we've recognized this argument. */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
243 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
244 int i;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
245
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
246 for (i = 1; (i < argc && ! display_arg); i++)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
247 if (!strcmp (argv[i], "-d"))
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
248 display_arg = 1;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
249 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
250 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
251
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
252 #ifdef VMS
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
253 /* If -map specified, map the data file in */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
254 if (argc > 2 && ! strcmp (argv[1], "-map"))
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
255 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
256 skip_args = 2;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
257 mapin_data (argv[2]);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
258 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
259
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
260 #ifdef LINK_CRTL_SHARE
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
261 #ifdef SHAREABLE_LIB_BUG
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
262 /* Bletcherous shared libraries! */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
263 if (!stdin)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
264 stdin = fdopen (0, "r");
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
265 if (!stdout)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
266 stdout = fdopen (1, "w");
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
267 if (!stderr)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
268 stderr = fdopen (2, "w");
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
269 if (!environ)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
270 environ = envp;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
271 #endif /* SHAREABLE_LIB_BUG */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
272 #endif /* LINK_CRTL_SHARE */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
273 #endif /* VMS */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
274
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
275 /* Record (approximately) where the stack begins. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
276 stack_bottom = &stack_bottom_variable;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
277
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
278 #ifdef RUN_TIME_REMAP
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
279 if (initialized)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
280 run_time_remap (argv[0]);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
281 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
282
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
283 #ifdef USG_SHARED_LIBRARIES
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
284 if (bss_end)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
285 brk (bss_end);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
286 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
287
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
288 clearerr (stdin);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
289 #ifdef BSD
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
290 setpgrp (0, getpid ());
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
291 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
292
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
293 #ifdef APOLLO
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
294 #ifndef APOLLO_SR10
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
295 /* If USE_DOMAIN_ACLS environment variable exists,
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
296 use ACLs rather than UNIX modes. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
297 if (egetenv ("USE_DOMAIN_ACLS"))
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
298 default_acl (USE_DEFACL);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
299 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
300 #endif /* APOLLO */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
301
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
302 #ifndef SYSTEM_MALLOC
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
303 if (! initialized)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
304 malloc_init (0, malloc_warning);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
305 #endif /* not SYSTEM_MALLOC */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
306
1141
d4f6d7467916 (main): Use X menu code if HAVE_X_WINDOWS and not NO_X_MENU.
Richard M. Stallman <rms@gnu.org>
parents: 1074
diff changeset
307 #ifdef PRIO_PROCESS
d4f6d7467916 (main): Use X menu code if HAVE_X_WINDOWS and not NO_X_MENU.
Richard M. Stallman <rms@gnu.org>
parents: 1074
diff changeset
308 if (emacs_priority)
1202
3d1bf36f0896 * emacs.c (emacs_priority): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1141
diff changeset
309 nice (emacs_priority);
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
310 setuid (getuid ());
1141
d4f6d7467916 (main): Use X menu code if HAVE_X_WINDOWS and not NO_X_MENU.
Richard M. Stallman <rms@gnu.org>
parents: 1074
diff changeset
311 #endif /* PRIO_PROCESS */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
312
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
313 #ifdef BSD
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
314 /* interrupt_input has trouble if we aren't in a separate process group. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
315 setpgrp (getpid (), getpid ());
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
316 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
317
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
318 inhibit_window_system = 0;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
319
420
ba5889c7de72 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 375
diff changeset
320 /* Handle the -t switch, which specifies filename to use as terminal */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
321 if (skip_args + 2 < argc && !strcmp (argv[skip_args + 1], "-t"))
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
322 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
323 int result;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
324 skip_args += 2;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
325 close (0);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
326 close (1);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
327 result = open (argv[skip_args], O_RDWR, 2 );
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
328 if (result < 0)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
329 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
330 char *errstring;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
331
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
332 if (errno >= 0 && errno < sys_nerr)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
333 errstring = sys_errlist[errno];
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
334 else
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
335 errstring = "undocumented error code";
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
336 fprintf (stderr, "emacs: %s: %s\n", argv[skip_args], errstring);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
337 exit (1);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
338 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
339 dup (0);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
340 if (! isatty (0))
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
341 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
342 fprintf (stderr, "emacs: %s: not a tty\n", argv[skip_args]);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
343 exit (1);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
344 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
345 fprintf (stderr, "Using %s\n", argv[skip_args]);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
346 #ifdef HAVE_X_WINDOWS
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
347 inhibit_window_system = 1; /* -t => -nw */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
348 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
349 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
350
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
351 if (skip_args + 1 < argc
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
352 && (!strcmp (argv[skip_args + 1], "-nw")))
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
353 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
354 skip_args += 1;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
355 inhibit_window_system = 1;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
356 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
357
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
358 /* Handle the -batch switch, which means don't do interactive display. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
359 noninteractive = 0;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
360 if (skip_args + 1 < argc && !strcmp (argv[skip_args + 1], "-batch"))
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
361 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
362 skip_args += 1;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
363 noninteractive = 1;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
364 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
365
348
17ca8766781a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 284
diff changeset
366 #ifdef POSIX_SIGNALS
17ca8766781a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 284
diff changeset
367 init_signals ();
17ca8766781a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 284
diff changeset
368 #endif
17ca8766781a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 284
diff changeset
369
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
370 if (
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
371 #ifndef CANNOT_DUMP
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
372 ! noninteractive || initialized
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
373 #else
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
374 1
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
375 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
376 )
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
377 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
378 /* Don't catch these signals in batch mode if not initialized.
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
379 On some machines, this sets static data that would make
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
380 signal fail to work right when the dumped Emacs is run. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
381 signal (SIGHUP, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
382 signal (SIGQUIT, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
383 signal (SIGILL, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
384 signal (SIGTRAP, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
385 signal (SIGIOT, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
386 #ifdef SIGEMT
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
387 signal (SIGEMT, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
388 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
389 signal (SIGFPE, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
390 signal (SIGBUS, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
391 signal (SIGSEGV, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
392 signal (SIGSYS, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
393 signal (SIGTERM, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
394 #ifdef SIGXCPU
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
395 signal (SIGXCPU, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
396 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
397 #ifdef SIGXFSZ
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
398 signal (SIGXFSZ, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
399 #endif /* SIGXFSZ */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
400
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
401 #ifdef AIX
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
402 signal (SIGDANGER, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
403 signal (20, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
404 signal (21, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
405 signal (22, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
406 signal (23, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
407 signal (24, fatal_error_signal);
372
481e29c1e27e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 348
diff changeset
408 #ifdef SIGIO
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
409 signal (SIGAIO, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
410 signal (SIGPTY, fatal_error_signal);
372
481e29c1e27e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 348
diff changeset
411 #endif
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
412 signal (SIGIOINT, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
413 signal (SIGGRANT, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
414 signal (SIGRETRACT, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
415 signal (SIGSOUND, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
416 signal (SIGMSG, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
417 #endif /* AIX */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
418 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
419
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
420 noninteractive1 = noninteractive;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
421
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
422 /* Perform basic initializations (not merely interning symbols) */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
423
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
424 if (!initialized)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
425 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
426 init_alloc_once ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
427 init_obarray ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
428 init_eval_once ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
429 init_syntax_once (); /* Create standard syntax table. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
430 /* Must be done before init_buffer */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
431 init_casetab_once ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
432 init_buffer_once (); /* Create buffer table and some buffers */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
433 init_minibuf_once (); /* Create list of minibuffers */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
434 /* Must precede init_window_once */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
435 init_window_once (); /* Init the window system */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
436 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
437
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
438 init_alloc ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
439 init_eval ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
440 init_data ();
348
17ca8766781a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 284
diff changeset
441 init_lread ();
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
442
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
443 init_cmdargs (argc, argv, skip_args); /* Create list Vcommand_line_args */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
444 init_buffer (); /* Init default directory of main buffer */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
445 if (!noninteractive)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
446 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
447 #ifdef VMS
763
f2efaa0394de *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
448 init_vms_input ();/* init_display calls get_frame_size, that needs this */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
449 #endif /* VMS */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
450 init_display (); /* Determine terminal type. init_sys_modes uses results */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
451 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
452 init_keyboard (); /* This too must precede init_sys_modes */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
453 init_callproc (); /* And this too. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
454 #ifdef VMS
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
455 init_vmsproc (); /* And this too. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
456 #endif /* VMS */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
457 init_sys_modes (); /* Init system terminal modes (RAW or CBREAK, etc.) */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
458 init_xdisp ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
459 init_macros ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
460 init_editfns ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
461 #ifdef LISP_FLOAT_TYPE
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
462 init_floatfns ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
463 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
464 #ifdef VMS
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
465 init_vmsfns ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
466 #endif /* VMS */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
467 init_process ();
624
2bb7f23b7ea5 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 587
diff changeset
468 #ifdef CLASH_DETECTION
2bb7f23b7ea5 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 587
diff changeset
469 init_filelock ();
2bb7f23b7ea5 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 587
diff changeset
470 #endif /* CLASH_DETECTION */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
471
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
472 /* Intern the names of all standard functions and variables; define standard keys */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
473
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
474 if (!initialized)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
475 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
476 /* The basic levels of Lisp must come first */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
477 /* And data must come first of all
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
478 for the sake of symbols like error-message */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
479 syms_of_data ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
480 syms_of_alloc ();
348
17ca8766781a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 284
diff changeset
481 syms_of_lread ();
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
482 syms_of_print ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
483 syms_of_eval ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
484 syms_of_fns ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
485 #ifdef LISP_FLOAT_TYPE
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
486 syms_of_floatfns ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
487 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
488
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
489 syms_of_abbrev ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
490 syms_of_buffer ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
491 syms_of_bytecode ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
492 syms_of_callint ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
493 syms_of_casefiddle ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
494 syms_of_casetab ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
495 syms_of_callproc ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
496 syms_of_cmds ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
497 #ifndef NO_DIR_LIBRARY
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
498 syms_of_dired ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
499 #endif /* not NO_DIR_LIBRARY */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
500 syms_of_display ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
501 syms_of_doc ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
502 syms_of_editfns ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
503 syms_of_emacs ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
504 syms_of_fileio ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
505 #ifdef CLASH_DETECTION
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
506 syms_of_filelock ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
507 #endif /* CLASH_DETECTION */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
508 syms_of_indent ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
509 syms_of_keyboard ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
510 syms_of_keymap ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
511 syms_of_macros ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
512 syms_of_marker ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
513 syms_of_minibuf ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
514 syms_of_mocklisp ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
515 syms_of_process ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
516 syms_of_search ();
763
f2efaa0394de *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
517 syms_of_frame ();
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
518 syms_of_syntax ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
519 syms_of_undo ();
1284
4742a5797146 Password:
Joseph Arceneaux <jla@gnu.org>
parents: 1202
diff changeset
520
4742a5797146 Password:
Joseph Arceneaux <jla@gnu.org>
parents: 1202
diff changeset
521 /* Only defined if Emacs is compiled with USE_TEXT_PROPERTIES */
4742a5797146 Password:
Joseph Arceneaux <jla@gnu.org>
parents: 1202
diff changeset
522 syms_of_textprop ();
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
523 #ifdef VMS
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
524 syms_of_vmsproc ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
525 #endif /* VMS */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
526 syms_of_window ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
527 syms_of_xdisp ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
528 #ifdef HAVE_X_WINDOWS
375
7665331b1d5d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 372
diff changeset
529 syms_of_xterm ();
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
530 syms_of_xfns ();
375
7665331b1d5d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 372
diff changeset
531 #ifdef HAVE_X11
7665331b1d5d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 372
diff changeset
532 syms_of_xselect ();
7665331b1d5d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 372
diff changeset
533 #endif
1141
d4f6d7467916 (main): Use X menu code if HAVE_X_WINDOWS and not NO_X_MENU.
Richard M. Stallman <rms@gnu.org>
parents: 1074
diff changeset
534 #ifdef HAVE_X_WINDOW
d4f6d7467916 (main): Use X menu code if HAVE_X_WINDOWS and not NO_X_MENU.
Richard M. Stallman <rms@gnu.org>
parents: 1074
diff changeset
535 #ifndef NO_X_MENU
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
536 syms_of_xmenu ();
1141
d4f6d7467916 (main): Use X menu code if HAVE_X_WINDOWS and not NO_X_MENU.
Richard M. Stallman <rms@gnu.org>
parents: 1074
diff changeset
537 #endif /* not NO_X_MENU */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
538 #endif /* HAVE_X_MENU */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
539 #endif /* HAVE_X_WINDOWS */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
540
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
541 #ifdef SYMS_SYSTEM
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
542 SYMS_SYSTEM;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
543 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
544
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
545 #ifdef SYMS_MACHINE
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
546 SYMS_MACHINE;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
547 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
548
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
549 keys_of_casefiddle ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
550 keys_of_cmds ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
551 keys_of_buffer ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
552 keys_of_keyboard ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
553 keys_of_keymap ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
554 keys_of_macros ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
555 keys_of_minibuf ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
556 keys_of_window ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
557 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
558
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
559 if (!initialized)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
560 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
561 /* Handle -l loadup-and-dump, args passed by Makefile. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
562 if (argc > 2 + skip_args && !strcmp (argv[1 + skip_args], "-l"))
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
563 Vtop_level = Fcons (intern ("load"),
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
564 Fcons (build_string (argv[2 + skip_args]), Qnil));
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
565 #ifdef CANNOT_DUMP
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
566 /* Unless next switch is -nl, load "loadup.el" first thing. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
567 if (!(argc > 1 + skip_args && !strcmp (argv[1 + skip_args], "-nl")))
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
568 Vtop_level = Fcons (intern ("load"),
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
569 Fcons (build_string ("loadup.el"), Qnil));
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
570 #endif /* CANNOT_DUMP */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
571 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
572
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
573 initialized = 1;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
574
815
6aabed5f5d58 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 763
diff changeset
575 #ifdef sun
6aabed5f5d58 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 763
diff changeset
576 /* sun's localtime() has a bug. it caches the value of the time
6aabed5f5d58 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 763
diff changeset
577 zone rather than looking it up every time. Since localtime() is
6aabed5f5d58 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 763
diff changeset
578 called to bolt the undumping time into the undumped emacs, this
6aabed5f5d58 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 763
diff changeset
579 results in localtime() ignoring the TZ environment variable.
6aabed5f5d58 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 763
diff changeset
580 This flushes the new TZ value into localtime(). */
6aabed5f5d58 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 763
diff changeset
581 tzset();
6aabed5f5d58 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 763
diff changeset
582 #endif /* sun */
6aabed5f5d58 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 763
diff changeset
583
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
584 /* Enter editor command loop. This never returns. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
585 Frecursive_edit ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
586 /* NOTREACHED */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
587 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
588
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
589 DEFUN ("kill-emacs", Fkill_emacs, Skill_emacs, 0, 1, "P",
1043
ee6f647ac103 * emacs.c: Incude "systty.h", not "systerm.h".
Jim Blandy <jimb@redhat.com>
parents: 1004
diff changeset
590 "Exit the Emacs job and kill it.\n\
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
591 If ARG is an integer, return ARG as the exit program code.\n\
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
592 If ARG is a string, stuff it as keyboard input.\n\n\
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
593 The value of `kill-emacs-hook', if not void,\n\
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
594 is a list of functions (of no args),\n\
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
595 all of which are called before Emacs is actually killed.")
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
596 (arg)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
597 Lisp_Object arg;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
598 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
599 Lisp_Object hook, hook1;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
600 int i;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
601 struct gcpro gcpro1;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
602
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
603 GCPRO1 (arg);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
604
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
605 if (feof (stdin))
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
606 arg = Qt;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
607
505
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
608 if (!NILP (Vrun_hooks) && !noninteractive)
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
609 call1 (Vrun_hooks, intern ("kill-emacs-hook"));
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
610
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
611 kill_buffer_processes (Qnil);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
612
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
613 #ifdef VMS
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
614 kill_vms_processes ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
615 #endif /* VMS */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
616
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
617 Fdo_auto_save (Qt, Qnil);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
618
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
619 #ifdef CLASH_DETECTION
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
620 unlock_all_files ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
621 #endif /* CLASH_DETECTION */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
622
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
623 fflush (stdout);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
624 reset_sys_modes ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
625
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
626 #ifdef HAVE_X_WINDOWS
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
627 if (!noninteractive && EQ (Vwindow_system, intern ("x")))
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
628 Fx_close_current_connection ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
629 #endif /* HAVE_X_WINDOWS */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
630
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
631 UNGCPRO;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
632
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
633 /* Is it really necessary to do this deassign
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
634 when we are going to exit anyway? */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
635 /* #ifdef VMS
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
636 stop_vms_input ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
637 #endif */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
638 stuff_buffered_input (arg);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
639 #ifdef SIGIO
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
640 /* There is a tendency for a SIGIO signal to arrive within exit,
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
641 and cause a SIGHUP because the input descriptor is already closed. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
642 unrequest_sigio ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
643 signal (SIGIO, SIG_IGN);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
644 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
645 exit ((XTYPE (arg) == Lisp_Int) ? XINT (arg)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
646 #ifdef VMS
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
647 : 1
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
648 #else
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
649 : 0
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
650 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
651 );
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
652 /* NOTREACHED */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
653 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
654
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
655 #ifndef CANNOT_DUMP
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
656 /* Nothing like this can be implemented on an Apollo.
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
657 What a loss! */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
658
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
659 #ifdef HAVE_SHM
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
660
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
661 DEFUN ("dump-emacs-data", Fdump_emacs_data, Sdump_emacs_data, 1, 1, 0,
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
662 "Dump current state of Emacs into data file FILENAME.\n\
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
663 This function exists on systems that use HAVE_SHM.")
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
664 (intoname)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
665 Lisp_Object intoname;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
666 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
667 extern int my_edata;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
668 Lisp_Object tem;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
669 extern void malloc_warning ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
670
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
671 CHECK_STRING (intoname, 0);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
672 intoname = Fexpand_file_name (intoname, Qnil);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
673
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
674 tem = Vpurify_flag;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
675 Vpurify_flag = Qnil;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
676
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
677 fflush (stdout);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
678 /* Tell malloc where start of impure now is */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
679 /* Also arrange for warnings when nearly out of space. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
680 #ifndef SYSTEM_MALLOC
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
681 malloc_init (&my_edata, malloc_warning);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
682 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
683 map_out_data (XSTRING (intoname)->data);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
684
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
685 Vpurify_flag = tem;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
686
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
687 return Qnil;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
688 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
689
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
690 #else /* not HAVE_SHM */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
691
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
692 DEFUN ("dump-emacs", Fdump_emacs, Sdump_emacs, 2, 2, 0,
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
693 "Dump current state of Emacs into executable file FILENAME.\n\
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
694 Take symbols from SYMFILE (presumably the file you executed to run Emacs).\n\
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
695 This is used in the file `loadup.el' when building Emacs.\n\
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
696 \n\
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
697 Bind `command-line-processed' to nil before dumping,\n\
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
698 if you want the dumped Emacs to process its command line\n\
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
699 and announce itself normally when it is run.")
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
700 (intoname, symname)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
701 Lisp_Object intoname, symname;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
702 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
703 extern int my_edata;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
704 Lisp_Object tem;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
705 extern void malloc_warning ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
706
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
707 CHECK_STRING (intoname, 0);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
708 intoname = Fexpand_file_name (intoname, Qnil);
505
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
709 if (!NILP (symname))
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
710 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
711 CHECK_STRING (symname, 0);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
712 if (XSTRING (symname)->size)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
713 symname = Fexpand_file_name (symname, Qnil);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
714 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
715
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
716 tem = Vpurify_flag;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
717 Vpurify_flag = Qnil;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
718
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
719 fflush (stdout);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
720 #ifdef VMS
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
721 mapout_data (XSTRING (intoname)->data);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
722 #else
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
723 /* Tell malloc where start of impure now is */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
724 /* Also arrange for warnings when nearly out of space. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
725 #ifndef SYSTEM_MALLOC
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
726 malloc_init (&my_edata, malloc_warning);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
727 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
728 unexec (XSTRING (intoname)->data,
505
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
729 !NILP (symname) ? XSTRING (symname)->data : 0, &my_edata, 0, 0);
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
730 #endif /* not VMS */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
731
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
732 Vpurify_flag = tem;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
733
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
734 return Qnil;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
735 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
736
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
737 #endif /* not HAVE_SHM */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
738
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
739 #endif /* not CANNOT_DUMP */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
740
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
741 #ifdef VMS
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
742 #define SEPCHAR ','
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
743 #else
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
744 #define SEPCHAR ':'
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
745 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
746
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
747 Lisp_Object
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
748 decode_env_path (evarname, defalt)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
749 char *evarname, *defalt;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
750 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
751 register char *path, *p;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
752 extern char *index ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
753
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
754 Lisp_Object lpath;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
755
505
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
756 /* It's okay to use getenv here, because this function is only used
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
757 to initialize variables when Emacs starts up, and isn't called
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
758 after that. */
638
40b255f55df3 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 624
diff changeset
759 if (evarname != 0)
40b255f55df3 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 624
diff changeset
760 path = (char *) getenv (evarname);
40b255f55df3 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 624
diff changeset
761 else
40b255f55df3 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 624
diff changeset
762 path = 0;
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
763 if (!path)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
764 path = defalt;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
765 lpath = Qnil;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
766 while (1)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
767 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
768 p = index (path, SEPCHAR);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
769 if (!p) p = path + strlen (path);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
770 lpath = Fcons (p - path ? make_string (path, p - path) : Qnil,
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
771 lpath);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
772 if (*p)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
773 path = p + 1;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
774 else
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
775 break;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
776 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
777 return Fnreverse (lpath);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
778 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
779
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
780 syms_of_emacs ()
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
781 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
782 #ifdef HAVE_SHM
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
783 defsubr (&Sdump_emacs_data);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
784 #else
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
785 defsubr (&Sdump_emacs);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
786 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
787
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
788 defsubr (&Skill_emacs);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
789
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
790 DEFVAR_LISP ("command-line-args", &Vcommand_line_args,
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
791 "Args passed by shell to Emacs, as a list of strings.");
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
792
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
793 DEFVAR_LISP ("system-type", &Vsystem_type,
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
794 "Value is symbol indicating type of operating system you are using.");
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
795 Vsystem_type = intern (SYSTEM_TYPE);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
796
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
797 DEFVAR_BOOL ("noninteractive", &noninteractive1,
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
798 "Non-nil means Emacs is running without interactive terminal.");
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 638
diff changeset
799
1043
ee6f647ac103 * emacs.c: Incude "systty.h", not "systerm.h".
Jim Blandy <jimb@redhat.com>
parents: 1004
diff changeset
800 DEFVAR_LISP ("kill-emacs-hook", &Vkill_emacs_hook,
ee6f647ac103 * emacs.c: Incude "systty.h", not "systerm.h".
Jim Blandy <jimb@redhat.com>
parents: 1004
diff changeset
801 "Hook to be run whenever kill-emacs is called.\n\
ee6f647ac103 * emacs.c: Incude "systty.h", not "systerm.h".
Jim Blandy <jimb@redhat.com>
parents: 1004
diff changeset
802 Since kill-emacs may be invoked when the terminal is disconnected (or\n\
ee6f647ac103 * emacs.c: Incude "systty.h", not "systerm.h".
Jim Blandy <jimb@redhat.com>
parents: 1004
diff changeset
803 in other similar situations), functions placed on this hook should not\n\
ee6f647ac103 * emacs.c: Incude "systty.h", not "systerm.h".
Jim Blandy <jimb@redhat.com>
parents: 1004
diff changeset
804 not expect to be able to interact with the user.");
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 638
diff changeset
805 Vkill_emacs_hook = Qnil;
1141
d4f6d7467916 (main): Use X menu code if HAVE_X_WINDOWS and not NO_X_MENU.
Richard M. Stallman <rms@gnu.org>
parents: 1074
diff changeset
806
d4f6d7467916 (main): Use X menu code if HAVE_X_WINDOWS and not NO_X_MENU.
Richard M. Stallman <rms@gnu.org>
parents: 1074
diff changeset
807 DEFVAR_INT ("emacs-priority", &emacs_priority,
d4f6d7467916 (main): Use X menu code if HAVE_X_WINDOWS and not NO_X_MENU.
Richard M. Stallman <rms@gnu.org>
parents: 1074
diff changeset
808 "Priority for Emacs to run at.\n\
d4f6d7467916 (main): Use X menu code if HAVE_X_WINDOWS and not NO_X_MENU.
Richard M. Stallman <rms@gnu.org>
parents: 1074
diff changeset
809 This value is effective only if set before Emacs is dumped,\n\
d4f6d7467916 (main): Use X menu code if HAVE_X_WINDOWS and not NO_X_MENU.
Richard M. Stallman <rms@gnu.org>
parents: 1074
diff changeset
810 and only if the Emacs executable is installed with setuid to permit\n\
d4f6d7467916 (main): Use X menu code if HAVE_X_WINDOWS and not NO_X_MENU.
Richard M. Stallman <rms@gnu.org>
parents: 1074
diff changeset
811 it to change priority. (Emacs sets its uid back to the real uid.)");
d4f6d7467916 (main): Use X menu code if HAVE_X_WINDOWS and not NO_X_MENU.
Richard M. Stallman <rms@gnu.org>
parents: 1074
diff changeset
812 emacs_priority = 0;
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
813 }