annotate src/emacs.c @ 111107:f3721a6253a8

Fix mouse highlight in bidi-reordered continued lines. xdisp.c (row_containing_pos): Don't return too early when CHARPOS is in a bidi-reordered continued line. Return immediately when the first hit is found in a line that is not continued, or when an exact match for CHARPOS is found. (mouse_face_from_buffer_pos): Rewrite to not assume that START_CHARPOS is always in mouse_face_beg_row. If necessary, swap mouse_face_beg_row and mouse_face_end_row so that the former is always above the latter or identical to it. Continued lines that begin or end outside of the visible region still don't work.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 02 Oct 2010 17:05:20 +0200
parents 297362357192
children 5f187a091415
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.
64770
a0d1312ede66 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64084
diff changeset
2 Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1998, 1999,
106802
b92c3979701c Replace emacs-pretest-bug with bug-gnu-emacs mailing list.
Glenn Morris <rgm@gnu.org>
parents: 106497
diff changeset
3 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
b92c3979701c Replace emacs-pretest-bug with bug-gnu-emacs mailing list.
Glenn Morris <rgm@gnu.org>
parents: 106497
diff changeset
4 2010 Free Software Foundation, Inc.
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6 This file is part of GNU Emacs.
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7
94963
8971ddf55736 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94959
diff changeset
8 GNU Emacs is free software: you can redistribute it and/or modify
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9 it under the terms of the GNU General Public License as published by
94963
8971ddf55736 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94959
diff changeset
10 the Free Software Foundation, either version 3 of the License, or
8971ddf55736 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94959
diff changeset
11 (at your option) any later version.
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 GNU Emacs is distributed in the hope that it will be useful,
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 GNU General Public License for more details.
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18 You should have received a copy of the GNU General Public License
94963
8971ddf55736 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94959
diff changeset
19 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
22 #include <config.h>
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
23 #include <signal.h>
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
24 #include <errno.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>
105669
68dd71358159 * alloc.c: Do not define struct catchtag.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105094
diff changeset
29 #include <setjmp.h>
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
30
25746
8690532ba294 (main): Remove unused variables.
Gerd Moellmann <gerd@gnu.org>
parents: 25667
diff changeset
31 #ifdef HAVE_UNISTD_H
8690532ba294 (main): Remove unused variables.
Gerd Moellmann <gerd@gnu.org>
parents: 25667
diff changeset
32 #include <unistd.h>
8690532ba294 (main): Remove unused variables.
Gerd Moellmann <gerd@gnu.org>
parents: 25667
diff changeset
33 #endif
8690532ba294 (main): Remove unused variables.
Gerd Moellmann <gerd@gnu.org>
parents: 25667
diff changeset
34
107722
98f7a4103e8e Clean up BSD_SYSTEM use.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 107443
diff changeset
35 #ifdef HAVE_SYS_IOCTL_H
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
36 #include <sys/ioctl.h>
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
37 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
38
51125
9f5266505a66 (main) [WINDOWSNT]: Move it here.
Jason Rumney <jasonr@gnu.org>
parents: 51093
diff changeset
39 #ifdef WINDOWSNT
9f5266505a66 (main) [WINDOWSNT]: Move it here.
Jason Rumney <jasonr@gnu.org>
parents: 51093
diff changeset
40 #include <fcntl.h>
60092
04686828d0da 2004-11-08 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Jason Rumney <jasonr@gnu.org>
parents: 59624
diff changeset
41 #include <windows.h> /* just for w32.h */
04686828d0da 2004-11-08 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Jason Rumney <jasonr@gnu.org>
parents: 59624
diff changeset
42 #include "w32.h"
63015
f2898fcf745b Include w32heap.h, to avoid compiler warning about sbrk.
Eli Zaretskii <eliz@gnu.org>
parents: 62304
diff changeset
43 #include "w32heap.h" /* for prototype of sbrk */
51125
9f5266505a66 (main) [WINDOWSNT]: Move it here.
Jason Rumney <jasonr@gnu.org>
parents: 51093
diff changeset
44 #endif
9f5266505a66 (main) [WINDOWSNT]: Move it here.
Jason Rumney <jasonr@gnu.org>
parents: 51093
diff changeset
45
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
46 #ifdef NS_IMPL_GNUSTEP
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
47 /* At least under Debian, GSConfig is in a subdirectory. --Stef */
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
48 #include <GNUstepBase/GSConfig.h>
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
49 #endif
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
50
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
51 #include "lisp.h"
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
52 #include "commands.h"
1284
4742a5797146 Password:
Joseph Arceneaux <jla@gnu.org>
parents: 1202
diff changeset
53 #include "intervals.h"
21722
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
54 #include "buffer.h"
50995
c955fcb7a64a Include window.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 48888
diff changeset
55 #include "window.h"
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
56
1043
ee6f647ac103 * emacs.c: Incude "systty.h", not "systerm.h".
Jim Blandy <jimb@redhat.com>
parents: 1004
diff changeset
57 #include "systty.h"
14502
37107ad125f0 Include blockinput.h.
Richard M. Stallman <rms@gnu.org>
parents: 14497
diff changeset
58 #include "blockinput.h"
1945
b07c27b4dca7 * emacs.c (fatal_error_signal): Unblock the signal before we try
Jim Blandy <jimb@redhat.com>
parents: 1917
diff changeset
59 #include "syssignal.h"
4589
3e419e5bbed6 Include process.h.
Richard M. Stallman <rms@gnu.org>
parents: 4507
diff changeset
60 #include "process.h"
83004
7900111db01c Converted display hooks to be display-local. Plus many bugfixes.
Karoly Lorentey <lorentey@elte.hu>
parents: 82988
diff changeset
61 #include "frame.h"
24348
9365b6b93858 (Qusr1_signal, Qusr2_signal): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 24228
diff changeset
62 #include "termhooks.h"
21514
fa9ff387d260 Fix -Wimplicit warnings.
Andreas Schwab <schwab@suse.de>
parents: 21449
diff changeset
63 #include "keyboard.h"
39748
42b7a798ff79 Include keymap.h.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39673
diff changeset
64 #include "keymap.h"
554
e14686fb979e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 505
diff changeset
65
109653
9cfca8c9fb07 Fix missing prototypes for HAVE_NS (caused crash) and vrious warnings.
Jan D <jan.h.d@swipnet.se>
parents: 109560
diff changeset
66 #ifdef HAVE_NS
9cfca8c9fb07 Fix missing prototypes for HAVE_NS (caused crash) and vrious warnings.
Jan D <jan.h.d@swipnet.se>
parents: 109560
diff changeset
67 #include "nsterm.h"
9cfca8c9fb07 Fix missing prototypes for HAVE_NS (caused crash) and vrious warnings.
Jan D <jan.h.d@swipnet.se>
parents: 109560
diff changeset
68 #endif
9cfca8c9fb07 Fix missing prototypes for HAVE_NS (caused crash) and vrious warnings.
Jan D <jan.h.d@swipnet.se>
parents: 109560
diff changeset
69
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
70 #ifdef HAVE_SETLOCALE
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
71 #include <locale.h>
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
72 #endif
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
73
16046
53cf5adf7fd1 [HAVE_SETRLIMIT]: Include time.h and resource.h.
Richard M. Stallman <rms@gnu.org>
parents: 15952
diff changeset
74 #ifdef HAVE_SETRLIMIT
53cf5adf7fd1 [HAVE_SETRLIMIT]: Include time.h and resource.h.
Richard M. Stallman <rms@gnu.org>
parents: 15952
diff changeset
75 #include <sys/time.h>
53cf5adf7fd1 [HAVE_SETRLIMIT]: Include time.h and resource.h.
Richard M. Stallman <rms@gnu.org>
parents: 15952
diff changeset
76 #include <sys/resource.h>
53cf5adf7fd1 [HAVE_SETRLIMIT]: Include time.h and resource.h.
Richard M. Stallman <rms@gnu.org>
parents: 15952
diff changeset
77 #endif
53cf5adf7fd1 [HAVE_SETRLIMIT]: Include time.h and resource.h.
Richard M. Stallman <rms@gnu.org>
parents: 15952
diff changeset
78
57623
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
79 #ifdef HAVE_PERSONALITY_LINUX32
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
80 #include <sys/personality.h>
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
81 #endif
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
82
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
83 #ifndef O_RDWR
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
84 #define O_RDWR 2
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
85 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
86
29125
63520d6017fb (setpgrp) [HAVE_SETPGID]: Define as setpgid.
Gerd Moellmann <gerd@gnu.org>
parents: 28932
diff changeset
87 #ifdef HAVE_SETPGID
108235
9aa39b975b8a Remove BSD_PGRPS.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 108213
diff changeset
88 #if !defined (USG)
29915
f93f1d35850a (setgrp): Undefine before defining.
Dave Love <fx@gnu.org>
parents: 29198
diff changeset
89 #undef setpgrp
29125
63520d6017fb (setpgrp) [HAVE_SETPGID]: Define as setpgid.
Gerd Moellmann <gerd@gnu.org>
parents: 28932
diff changeset
90 #define setpgrp setpgid
63520d6017fb (setpgrp) [HAVE_SETPGID]: Define as setpgid.
Gerd Moellmann <gerd@gnu.org>
parents: 28932
diff changeset
91 #endif
29150
0398ec3316c5 (setpgrp): Don't define if USG and BSD_PGRPS are not defined.
Gerd Moellmann <gerd@gnu.org>
parents: 29125
diff changeset
92 #endif
29125
63520d6017fb (setpgrp) [HAVE_SETPGID]: Define as setpgid.
Gerd Moellmann <gerd@gnu.org>
parents: 28932
diff changeset
93
109889
297362357192 Fix version string in top-level MSDOS Makefile.
Eli Zaretskii <eliz@gnu.org>
parents: 109748
diff changeset
94 /* If you change the following line, remember to update
297362357192 Fix version string in top-level MSDOS Makefile.
Eli Zaretskii <eliz@gnu.org>
parents: 109748
diff changeset
95 msdos/mainmake.v2 which gleans the Emacs version from it! */
109665
4dbec9b5cd87 emacs.c cleanups.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109653
diff changeset
96 static const char emacs_copyright[] = "Copyright (C) 2010 Free Software Foundation, Inc.";
4dbec9b5cd87 emacs.c cleanups.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109653
diff changeset
97 static const char emacs_version[] = "24.0.50";
108601
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
98
26532
9692309251b8 (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
Gerd Moellmann <gerd@gnu.org>
parents: 26526
diff changeset
99 /* Make these values available in GDB, which doesn't see macros. */
9692309251b8 (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
Gerd Moellmann <gerd@gnu.org>
parents: 26526
diff changeset
100
54689
d57cf5187262 (gdb_use_union, gdb_use_lsb): New vars.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54383
diff changeset
101 #ifdef USE_LSB_TAG
d57cf5187262 (gdb_use_union, gdb_use_lsb): New vars.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54383
diff changeset
102 int gdb_use_lsb = 1;
d57cf5187262 (gdb_use_union, gdb_use_lsb): New vars.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54383
diff changeset
103 #else
d57cf5187262 (gdb_use_union, gdb_use_lsb): New vars.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54383
diff changeset
104 int gdb_use_lsb = 0;
d57cf5187262 (gdb_use_union, gdb_use_lsb): New vars.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54383
diff changeset
105 #endif
96602
0e3e875ffade * lisp.h:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 96303
diff changeset
106 #ifndef USE_LISP_UNION_TYPE
54689
d57cf5187262 (gdb_use_union, gdb_use_lsb): New vars.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54383
diff changeset
107 int gdb_use_union = 0;
d57cf5187262 (gdb_use_union, gdb_use_lsb): New vars.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54383
diff changeset
108 #else
d57cf5187262 (gdb_use_union, gdb_use_lsb): New vars.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54383
diff changeset
109 int gdb_use_union = 1;
d57cf5187262 (gdb_use_union, gdb_use_lsb): New vars.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 54383
diff changeset
110 #endif
26532
9692309251b8 (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
Gerd Moellmann <gerd@gnu.org>
parents: 26526
diff changeset
111 EMACS_INT gdb_valbits = VALBITS;
9692309251b8 (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
Gerd Moellmann <gerd@gnu.org>
parents: 26526
diff changeset
112 EMACS_INT gdb_gctypebits = GCTYPEBITS;
102343
80527611edeb (gdb_data_seg_bits) [USE_LSB_TAG]: Make it 0.
Richard M. Stallman <rms@gnu.org>
parents: 101406
diff changeset
113 #if defined (DATA_SEG_BITS) && ! defined (USE_LSB_TAG)
26532
9692309251b8 (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
Gerd Moellmann <gerd@gnu.org>
parents: 26526
diff changeset
114 EMACS_INT gdb_data_seg_bits = DATA_SEG_BITS;
9692309251b8 (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
Gerd Moellmann <gerd@gnu.org>
parents: 26526
diff changeset
115 #else
47848
20348451bd8a Minor white space fix, just to supplement the log for previous change:
Markus Rost <rost@math.uni-bielefeld.de>
parents: 47839
diff changeset
116 EMACS_INT gdb_data_seg_bits = 0;
26532
9692309251b8 (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
Gerd Moellmann <gerd@gnu.org>
parents: 26526
diff changeset
117 #endif
26567
f6e79aed5c2e (PVEC_FLAG): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 26532
diff changeset
118 EMACS_INT PVEC_FLAG = PSEUDOVECTOR_FLAG;
55608
1d21085d1d46 (gdb_array_mark_flag): Define.
Andreas Schwab <schwab@suse.de>
parents: 55395
diff changeset
119 EMACS_INT gdb_array_mark_flag = ARRAY_MARK_FLAG;
67958
ebf8e8b846e6 (gdb_pvec_type): A dummy variable for GDB's sake.
Eli Zaretskii <eliz@gnu.org>
parents: 67488
diff changeset
120 /* GDB might say "No enum type named pvec_type" if we don't have at
ebf8e8b846e6 (gdb_pvec_type): A dummy variable for GDB's sake.
Eli Zaretskii <eliz@gnu.org>
parents: 67488
diff changeset
121 least one symbol with that type, and then xbacktrace could fail. */
ebf8e8b846e6 (gdb_pvec_type): A dummy variable for GDB's sake.
Eli Zaretskii <eliz@gnu.org>
parents: 67488
diff changeset
122 enum pvec_type gdb_pvec_type = PVEC_TYPE_MASK;
26532
9692309251b8 (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
Gerd Moellmann <gerd@gnu.org>
parents: 26526
diff changeset
123
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
124 /* Command line args from shell, as list of strings. */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
125 Lisp_Object Vcommand_line_args;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
126
2279
012b04efa234 * emacs.c (Finvocation_name): New function.
Jim Blandy <jimb@redhat.com>
parents: 2118
diff changeset
127 /* The name under which Emacs was invoked, with any leading directory
012b04efa234 * emacs.c (Finvocation_name): New function.
Jim Blandy <jimb@redhat.com>
parents: 2118
diff changeset
128 names discarded. */
012b04efa234 * emacs.c (Finvocation_name): New function.
Jim Blandy <jimb@redhat.com>
parents: 2118
diff changeset
129 Lisp_Object Vinvocation_name;
012b04efa234 * emacs.c (Finvocation_name): New function.
Jim Blandy <jimb@redhat.com>
parents: 2118
diff changeset
130
4484
c589c71324dd (Vinvocation_directory): New var.
Richard M. Stallman <rms@gnu.org>
parents: 4303
diff changeset
131 /* The directory name from which Emacs was invoked. */
c589c71324dd (Vinvocation_directory): New var.
Richard M. Stallman <rms@gnu.org>
parents: 4303
diff changeset
132 Lisp_Object Vinvocation_directory;
c589c71324dd (Vinvocation_directory): New var.
Richard M. Stallman <rms@gnu.org>
parents: 4303
diff changeset
133
5763
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
134 /* The directory name in which to find subdirs such as lisp and etc.
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
135 nil means get them only from PATH_LOADSEARCH. */
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
136 Lisp_Object Vinstallation_directory;
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
137
98544
bc9970afd5be (Vbefore_init_time, Vafter_init_time): Moved from startup.el.
Chong Yidong <cyd@stupidchicken.com>
parents: 98472
diff changeset
138 /* The values of `current-time' before and after Emacs initialization. */
bc9970afd5be (Vbefore_init_time, Vafter_init_time): Moved from startup.el.
Chong Yidong <cyd@stupidchicken.com>
parents: 98472
diff changeset
139 Lisp_Object Vbefore_init_time, Vafter_init_time;
bc9970afd5be (Vbefore_init_time, Vafter_init_time): Moved from startup.el.
Chong Yidong <cyd@stupidchicken.com>
parents: 98472
diff changeset
140
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 638
diff changeset
141 /* Hook run by `kill-emacs' before it does really anything. */
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 638
diff changeset
142 Lisp_Object Vkill_emacs_hook;
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 638
diff changeset
143
81271
0aafd69cb508 (empty_unibyte_string): Rename from empty_string.
Juanma Barranquero <lekktu@gmail.com>
parents: 81221
diff changeset
144 /* Empty lisp strings. To avoid having to build any others. */
0aafd69cb508 (empty_unibyte_string): Rename from empty_string.
Juanma Barranquero <lekktu@gmail.com>
parents: 81221
diff changeset
145 Lisp_Object empty_unibyte_string, empty_multibyte_string;
39803
3be833ec55f7 (empty_string): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 39748
diff changeset
146
21622
340ce8f170ef (Vpath_separator): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents: 21585
diff changeset
147 /* Search path separator. */
340ce8f170ef (Vpath_separator): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents: 21585
diff changeset
148 Lisp_Object Vpath_separator;
340ce8f170ef (Vpath_separator): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents: 21585
diff changeset
149
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
150 /* Set nonzero after Emacs has started up the first time.
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
151 Prevents reinitialization of the Lisp world and keymaps
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
152 on subsequent starts. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
153 int initialized;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
154
17346
f29f51d8a21f (malloc_get_state, malloc_set_state): New declarations.
Richard M. Stallman <rms@gnu.org>
parents: 17312
diff changeset
155 #ifdef DOUG_LEA_MALLOC
f29f51d8a21f (malloc_get_state, malloc_set_state): New declarations.
Richard M. Stallman <rms@gnu.org>
parents: 17312
diff changeset
156 /* Preserves a pointer to the memory allocated that copies that
f29f51d8a21f (malloc_get_state, malloc_set_state): New declarations.
Richard M. Stallman <rms@gnu.org>
parents: 17312
diff changeset
157 static data inside glibc's malloc. */
f29f51d8a21f (malloc_get_state, malloc_set_state): New declarations.
Richard M. Stallman <rms@gnu.org>
parents: 17312
diff changeset
158 void *malloc_state_ptr;
f29f51d8a21f (malloc_get_state, malloc_set_state): New declarations.
Richard M. Stallman <rms@gnu.org>
parents: 17312
diff changeset
159 /* From glibc, a routine that returns a copy of the malloc internal state. */
109139
c25c24812fb1 Convert declarations or definitions to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
160 extern void *malloc_get_state (void);
17346
f29f51d8a21f (malloc_get_state, malloc_set_state): New declarations.
Richard M. Stallman <rms@gnu.org>
parents: 17312
diff changeset
161 /* From glibc, a routine that overwrites the malloc internal state. */
109139
c25c24812fb1 Convert declarations or definitions to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
162 extern int malloc_set_state (void*);
106818
a3da62473e24 Fix typos in comments and ChangeLogs.
Juanma Barranquero <lekktu@gmail.com>
parents: 106802
diff changeset
163 /* Non-zero if the MALLOC_CHECK_ environment variable was set while
24405
61704c572291 (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
Andreas Schwab <schwab@suse.de>
parents: 24374
diff changeset
164 dumping. Used to work around a bug in glibc's malloc. */
61704c572291 (main) [DOUG_LEA_MALLOC]: Work around a bug in glibc's
Andreas Schwab <schwab@suse.de>
parents: 24374
diff changeset
165 int malloc_using_checking;
17346
f29f51d8a21f (malloc_get_state, malloc_set_state): New declarations.
Richard M. Stallman <rms@gnu.org>
parents: 17312
diff changeset
166 #endif
f29f51d8a21f (malloc_get_state, malloc_set_state): New declarations.
Richard M. Stallman <rms@gnu.org>
parents: 17312
diff changeset
167
5236
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
168 /* Variable whose value is symbol giving operating system type. */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
169 Lisp_Object Vsystem_type;
5236
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
170
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
171 /* Variable whose value is string giving configuration built for. */
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
172 Lisp_Object Vsystem_configuration;
8843
4fd9700b07a7 (Vsystem_configuration_options): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 8815
diff changeset
173
4fd9700b07a7 (Vsystem_configuration_options): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 8815
diff changeset
174 /* Variable whose value is string giving configuration options,
4fd9700b07a7 (Vsystem_configuration_options): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 8815
diff changeset
175 for use when reporting bugs. */
4fd9700b07a7 (Vsystem_configuration_options): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 8815
diff changeset
176 Lisp_Object Vsystem_configuration_options;
4fd9700b07a7 (Vsystem_configuration_options): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 8815
diff changeset
177
16386
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
178 Lisp_Object Qfile_name_handler_alist;
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
179
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
180 /* Current and previous system locales for messages and time. */
26526
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
181 Lisp_Object Vsystem_messages_locale;
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
182 Lisp_Object Vprevious_system_messages_locale;
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
183 Lisp_Object Vsystem_time_locale;
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
184 Lisp_Object Vprevious_system_time_locale;
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
185
108601
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
186 /* Copyright and version info. The version number may be updated by
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
187 Lisp code. */
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
188 Lisp_Object Vemacs_copyright, Vemacs_version;
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
189
47942
080b4586492b Fix typo in comment.
Juanma Barranquero <lekktu@gmail.com>
parents: 47848
diff changeset
190 /* If non-zero, emacs should not attempt to use a window-specific code,
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
191 but instead should use the virtual terminal under which it was started. */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
192 int inhibit_window_system;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
193
1202
3d1bf36f0896 * emacs.c (emacs_priority): Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 1141
diff changeset
194 /* 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
195 in child_setup and sys_suspend to make sure subshells run at normal
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
196 priority; those functions have their own extern declaration. */
43713
f92c4d87863a Change defvar_int def and vars to use EMACS_INT instead of just int.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 42744
diff changeset
197 EMACS_INT emacs_priority;
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
198
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
199 /* If non-zero, a filter or a sentinel is running. Tested to save the match
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
200 data on the first attempt to change it inside asynchronous code. */
10032
f689803caa92 Added code for automatically saving and restoring the match data
Francesco Potortì <pot@gnu.org>
parents: 10029
diff changeset
201 int running_asynch_code;
f689803caa92 Added code for automatically saving and restoring the match data
Francesco Potortì <pot@gnu.org>
parents: 10029
diff changeset
202
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
203 #if defined(HAVE_X_WINDOWS) || defined(HAVE_NS)
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
204 /* If non-zero, -d was specified, meaning we're using some window system. */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
205 int display_arg;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
206 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
207
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
208 /* An address near the bottom of the stack.
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
209 Tells GC how to save a copy of the stack. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
210 char *stack_bottom;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
211
57623
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
212 /* The address where the heap starts (from the first sbrk (0) call). */
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
213 static void *my_heap_start;
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
214
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
215 /* The gap between BSS end and heap start as far as we can tell. */
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
216 static unsigned long heap_bss_diff;
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
217
98957
9fe4a5c6bf9c (main): Unconditionally set PER_LINUX32 and exec
Jan Djärv <jan.h.d@swipnet.se>
parents: 98544
diff changeset
218 /* If the gap between BSS end and heap start is larger than this
9fe4a5c6bf9c (main): Unconditionally set PER_LINUX32 and exec
Jan Djärv <jan.h.d@swipnet.se>
parents: 98544
diff changeset
219 output a warning in dump-emacs. */
57623
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
220 #define MAX_HEAP_BSS_DIFF (1024*1024)
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
221
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
222 /* Nonzero means running Emacs without interactive terminal. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
223
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
224 int noninteractive;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
225
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
226 /* Value of Lisp variable `noninteractive'.
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
227 Normally same as C variable `noninteractive'
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
228 but nothing terrible happens if user sets this one. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
229
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
230 int noninteractive1;
7869
3b27d2451f83 (init_cmdargs): Set up initial_argv, initial_argc.
Richard M. Stallman <rms@gnu.org>
parents: 7788
diff changeset
231
105069
4cbb223d0b1c The --quick command line option now ignores X resources and Registry settings.
Juanma Barranquero <lekktu@gmail.com>
parents: 104698
diff changeset
232 /* Nonzero means Emacs was run in --quick mode. */
4cbb223d0b1c The --quick command line option now ignores X resources and Registry settings.
Juanma Barranquero <lekktu@gmail.com>
parents: 104698
diff changeset
233 int inhibit_x_resources;
4cbb223d0b1c The --quick command line option now ignores X resources and Registry settings.
Juanma Barranquero <lekktu@gmail.com>
parents: 104698
diff changeset
234
99158
d1d986962044 * emacs.c (daemon_name): New variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 99148
diff changeset
235 /* Name for the server started by the daemon.*/
d1d986962044 * emacs.c (daemon_name): New variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 99148
diff changeset
236 static char *daemon_name;
98290
90bc7e356363 * emacs.c (standard_args): Add --daemon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97644
diff changeset
237
99148
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
238 /* Pipe used to send exit notification to the daemon parent at
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
239 startup. */
99182
c1511154e8c2 * emacs.c (daemon_pipe): Make non-static.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 99178
diff changeset
240 int daemon_pipe[2];
99178
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
241
7869
3b27d2451f83 (init_cmdargs): Set up initial_argv, initial_argc.
Richard M. Stallman <rms@gnu.org>
parents: 7788
diff changeset
242 /* Save argv and argc. */
3b27d2451f83 (init_cmdargs): Set up initial_argv, initial_argc.
Richard M. Stallman <rms@gnu.org>
parents: 7788
diff changeset
243 char **initial_argv;
3b27d2451f83 (init_cmdargs): Set up initial_argv, initial_argc.
Richard M. Stallman <rms@gnu.org>
parents: 7788
diff changeset
244 int initial_argc;
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
245
109139
c25c24812fb1 Convert declarations or definitions to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
246 static void sort_args (int argc, char **argv);
c25c24812fb1 Convert declarations or definitions to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
247 void syms_of_emacs (void);
27472
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
248
54116
c7d9113f8f82 (USAGE1): Split into two halves.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 54101
diff changeset
249 /* MSVC needs each string be shorter than 2048 bytes, so the usage
c7d9113f8f82 (USAGE1): Split into two halves.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 54101
diff changeset
250 strings below are split to not overflow this limit. */
27627
9de718d5635c (USAGE): Split into USAGE1 and USAGE2, to work-around
Andrew Innes <andrewi@gnu.org>
parents: 27538
diff changeset
251 #define USAGE1 "\
27472
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
252 Usage: %s [OPTION-OR-FILENAME]...\n\
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
253 \n\
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
254 Run Emacs, the extensible, customizable, self-documenting real-time\n\
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
255 display editor. The recommended way to start Emacs for normal editing\n\
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
256 is with no options at all.\n\
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
257 \n\
60399
e8bfc9ca45c2 (USAGE1): Replace Info node name "command arguments"
Juri Linkov <juri@jurta.org>
parents: 60358
diff changeset
258 Run M-x info RET m emacs RET m emacs invocation RET inside Emacs to\n\
27472
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
259 read the main documentation for these command-line arguments.\n\
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
260 \n\
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
261 Initialization options:\n\
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
262 \n\
54101
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
263 --batch do not do interactive display; implies -q\n\
108213
e6266e624471 Run kill-emacs when exiting for display closed or SIGTERM/HUP.
Jan D. <jan.h.d@swipnet.se>
parents: 107737
diff changeset
264 --chdir DIR change to directory DIR\n\
98472
cbc542a48bb0 (USAGE1): Add --daemon.
Glenn Morris <rgm@gnu.org>
parents: 98294
diff changeset
265 --daemon start a server in the background\n\
54101
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
266 --debug-init enable Emacs Lisp debugger for init file\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
267 --display, -d DISPLAY use X server DISPLAY\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
268 --no-desktop do not load a saved desktop\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
269 --no-init-file, -q load neither ~/.emacs nor default.el\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
270 --no-shared-memory, -nl do not use shared memory\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
271 --no-site-file do not load site-start.el\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
272 --no-splash do not display a splash screen on startup\n\
61898
3d014b038c1a (USAGE1): Add --basic-display and --quick options.
Nick Roberts <nickrob@snap.net.nz>
parents: 61783
diff changeset
273 --no-window-system, -nw do not communicate with X, ignoring $DISPLAY\n\
65172
0e4df13dd5ba (USAGE1): Fix the description of the -Q option.
Eli Zaretskii <eliz@gnu.org>
parents: 64775
diff changeset
274 --quick, -Q equivalent to -q --no-site-file --no-splash\n\
54101
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
275 --script FILE run FILE as an Emacs Lisp script\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
276 --terminal, -t DEVICE use DEVICE for terminal I/O\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
277 --user, -u USER load ~USER/.emacs instead of your own\n\
54116
c7d9113f8f82 (USAGE1): Split into two halves.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 54101
diff changeset
278 \n%s"
c7d9113f8f82 (USAGE1): Split into two halves.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 54101
diff changeset
279
c7d9113f8f82 (USAGE1): Split into two halves.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 54101
diff changeset
280 #define USAGE2 "\
27472
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
281 Action options:\n\
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
282 \n\
54101
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
283 FILE visit FILE using find-file\n\
99318
bf6e1cf74209 Ulrich Mueller <ulm at kph.uni-mainz.de>
Glenn Morris <rgm@gnu.org>
parents: 99226
diff changeset
284 +LINE go to line LINE in next FILE\n\
bf6e1cf74209 Ulrich Mueller <ulm at kph.uni-mainz.de>
Glenn Morris <rgm@gnu.org>
parents: 99226
diff changeset
285 +LINE:COLUMN go to line LINE, column COLUMN, in next FILE\n\
54101
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
286 --directory, -L DIR add DIR to variable load-path\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
287 --eval EXPR evaluate Emacs Lisp expression EXPR\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
288 --execute EXPR evaluate Emacs Lisp expression EXPR\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
289 --file FILE visit FILE using find-file\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
290 --find-file FILE visit FILE using find-file\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
291 --funcall, -f FUNC call Emacs Lisp function FUNC with no arguments\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
292 --insert FILE insert contents of FILE into current buffer\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
293 --kill exit without asking for confirmation\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
294 --load, -l FILE load Emacs Lisp FILE using the load function\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
295 --visit FILE visit FILE using find-file\n\
27627
9de718d5635c (USAGE): Split into USAGE1 and USAGE2, to work-around
Andrew Innes <andrewi@gnu.org>
parents: 27538
diff changeset
296 \n"
9de718d5635c (USAGE): Split into USAGE1 and USAGE2, to work-around
Andrew Innes <andrewi@gnu.org>
parents: 27538
diff changeset
297
54116
c7d9113f8f82 (USAGE1): Split into two halves.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 54101
diff changeset
298 #define USAGE3 "\
27538
3d62fa3917d1 (USAGE): Use term `display options' instead of `X
Gerd Moellmann <gerd@gnu.org>
parents: 27472
diff changeset
299 Display options:\n\
27472
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
300 \n\
54101
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
301 --background-color, -bg COLOR window background color\n\
61898
3d014b038c1a (USAGE1): Add --basic-display and --quick options.
Nick Roberts <nickrob@snap.net.nz>
parents: 61783
diff changeset
302 --basic-display, -D disable many display features;\n\
3d014b038c1a (USAGE1): Add --basic-display and --quick options.
Nick Roberts <nickrob@snap.net.nz>
parents: 61783
diff changeset
303 used for debugging Emacs\n\
54101
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
304 --border-color, -bd COLOR main border color\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
305 --border-width, -bw WIDTH width of main border\n\
74642
ee3e5cf45b69 (USAGE3): Clarify documentation of --color.
Eli Zaretskii <eliz@gnu.org>
parents: 74610
diff changeset
306 --color, --color=MODE override color mode for character terminals;\n\
54101
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
307 MODE defaults to `auto', and can also\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
308 be `never', `auto', `always',\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
309 or a mode name like `ansi8'\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
310 --cursor-color, -cr COLOR color of the Emacs cursor indicating point\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
311 --font, -fn FONT default font; must be fixed-width\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
312 --foreground-color, -fg COLOR window foreground color\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
313 --fullheight, -fh make the first frame high as the screen\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
314 --fullscreen, -fs make first frame fullscreen\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
315 --fullwidth, -fw make the first frame wide as the screen\n\
103665
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103550
diff changeset
316 --maximized, -mm make the first frame maximized\n\
54101
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
317 --geometry, -g GEOMETRY window geometry\n\
65979
3733ed3530ec -nb changed to -nbi
Jan Djärv <jan.h.d@swipnet.se>
parents: 65937
diff changeset
318 --no-bitmap-icon, -nbi do not use picture of gnu for Emacs icon\n\
54101
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
319 --iconic start Emacs in iconified state\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
320 --internal-border, -ib WIDTH width between text and main border\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
321 --line-spacing, -lsp PIXELS additional space to put between lines\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
322 --mouse-color, -ms COLOR mouse cursor color in Emacs window\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
323 --name NAME title for initial Emacs frame\n\
60399
e8bfc9ca45c2 (USAGE1): Replace Info node name "command arguments"
Juri Linkov <juri@jurta.org>
parents: 60358
diff changeset
324 --no-blinking-cursor, -nbc disable blinking cursor\n\
54101
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
325 --reverse-video, -r, -rv switch foreground and background\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
326 --title, -T TITLE title for initial Emacs frame\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
327 --vertical-scroll-bars, -vb enable vertical scroll bars\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
328 --xrm XRESOURCES set additional X resources\n\
91634
69cda6392921 (USAGE3): Add --parent-id
Jan Djärv <jan.h.d@swipnet.se>
parents: 91368
diff changeset
329 --parent-id XID set parent window\n\
54101
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
330 --help display this help and exit\n\
e1a843eba96a (USAGE1): Add --no-desktop. Move --display from USAGE2.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 53882
diff changeset
331 --version output version information and exit\n\
62006
e3167e9f22d0 (USAGE3, USAGE4): Keep strings below 2048 bytes.
Jason Rumney <jasonr@gnu.org>
parents: 61898
diff changeset
332 \n"
e3167e9f22d0 (USAGE3, USAGE4): Keep strings below 2048 bytes.
Jason Rumney <jasonr@gnu.org>
parents: 61898
diff changeset
333
e3167e9f22d0 (USAGE3, USAGE4): Keep strings below 2048 bytes.
Jason Rumney <jasonr@gnu.org>
parents: 61898
diff changeset
334 #define USAGE4 "\
27472
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
335 You can generally also specify long option names with a single -; for\n\
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
336 example, -batch as well as --batch. You can use any unambiguous\n\
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
337 abbreviation for a --option.\n\
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
338 \n\
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
339 Various environment variables and window system resources also affect\n\
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
340 Emacs' operation. See the main documentation.\n\
62006
e3167e9f22d0 (USAGE3, USAGE4): Keep strings below 2048 bytes.
Jason Rumney <jasonr@gnu.org>
parents: 61898
diff changeset
341 \n\
107414
929a106309b7 Remove obsolete code in emacs.c that chooses a bug reporting address.
Glenn Morris <rgm@gnu.org>
parents: 106864
diff changeset
342 Report bugs to bug-gnu-emacs@gnu.org. First, please see the Bugs\n\
27472
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
343 section of the Emacs manual or the file BUGS.\n"
881e4d39490d (USAGE): New macro.
Gerd Moellmann <gerd@gnu.org>
parents: 27429
diff changeset
344
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
345
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
346 /* Signal code for the fatal signal that was received. */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
347 int fatal_error_code;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
348
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
349 /* Nonzero if handling a fatal error already. */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
350 int fatal_error_in_progress;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
351
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
352 /* If non-null, call this function from fatal_error_signal before
39576
d2a8cced572f (fatal_error_signal_hook): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 39036
diff changeset
353 committing suicide. */
d2a8cced572f (fatal_error_signal_hook): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 39036
diff changeset
354
109100
2bc9a0c04c87 Remove __P and P_ from .c and .m files and definition of P_
Jan D <jan.h.d@swipnet.se>
parents: 108888
diff changeset
355 void (*fatal_error_signal_hook) (void);
39576
d2a8cced572f (fatal_error_signal_hook): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 39036
diff changeset
356
80571
2143d86d5d7c (main_thread): Conditionalize on
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 79758
diff changeset
357 #ifdef FORWARD_SIGNAL_TO_MAIN_THREAD
97043
9592c50233ab Remove support for Mac Carbon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 96948
diff changeset
358 /* When compiled with GTK and running under Gnome,
9592c50233ab Remove support for Mac Carbon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 96948
diff changeset
359 multiple threads may be created. Keep track of our main
80571
2143d86d5d7c (main_thread): Conditionalize on
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 79758
diff changeset
360 thread to make sure signals are delivered to it (see syssignal.h). */
58986
59945307b86b * syssignal.h: Declare main_thread.
Jan Djärv <jan.h.d@swipnet.se>
parents: 58895
diff changeset
361
59945307b86b * syssignal.h: Declare main_thread.
Jan Djärv <jan.h.d@swipnet.se>
parents: 58895
diff changeset
362 pthread_t main_thread;
59945307b86b * syssignal.h: Declare main_thread.
Jan Djärv <jan.h.d@swipnet.se>
parents: 58895
diff changeset
363 #endif
59945307b86b * syssignal.h: Declare main_thread.
Jan Djärv <jan.h.d@swipnet.se>
parents: 58895
diff changeset
364
39576
d2a8cced572f (fatal_error_signal_hook): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 39036
diff changeset
365
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
366 /* Handle bus errors, invalid instruction, etc. */
505
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
367 SIGTYPE
109139
c25c24812fb1 Convert declarations or definitions to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
368 fatal_error_signal (int sig)
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
369 {
58986
59945307b86b * syssignal.h: Declare main_thread.
Jan Djärv <jan.h.d@swipnet.se>
parents: 58895
diff changeset
370 SIGNAL_THREAD_CHECK (sig);
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
371 fatal_error_code = sig;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
372 signal (sig, SIG_DFL);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
373
14497
002c4d6b3e28 (fatal_error_signal): Do TOTALLY_UNBLOCK_INPUT.
Richard M. Stallman <rms@gnu.org>
parents: 14399
diff changeset
374 TOTALLY_UNBLOCK_INPUT;
002c4d6b3e28 (fatal_error_signal): Do TOTALLY_UNBLOCK_INPUT.
Richard M. Stallman <rms@gnu.org>
parents: 14399
diff changeset
375
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
376 /* If fatal error occurs in code below, avoid infinite recursion. */
1945
b07c27b4dca7 * emacs.c (fatal_error_signal): Unblock the signal before we try
Jim Blandy <jimb@redhat.com>
parents: 1917
diff changeset
377 if (! fatal_error_in_progress)
b07c27b4dca7 * emacs.c (fatal_error_signal): Unblock the signal before we try
Jim Blandy <jimb@redhat.com>
parents: 1917
diff changeset
378 {
b07c27b4dca7 * emacs.c (fatal_error_signal): Unblock the signal before we try
Jim Blandy <jimb@redhat.com>
parents: 1917
diff changeset
379 fatal_error_in_progress = 1;
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
380
108213
e6266e624471 Run kill-emacs when exiting for display closed or SIGTERM/HUP.
Jan D. <jan.h.d@swipnet.se>
parents: 107737
diff changeset
381 if (sig == SIGTERM || sig == SIGHUP)
e6266e624471 Run kill-emacs when exiting for display closed or SIGTERM/HUP.
Jan D. <jan.h.d@swipnet.se>
parents: 107737
diff changeset
382 Fkill_emacs (make_number (sig));
e6266e624471 Run kill-emacs when exiting for display closed or SIGTERM/HUP.
Jan D. <jan.h.d@swipnet.se>
parents: 107737
diff changeset
383
3711
5acf09035d16 (shut_down_emacs): New arg STUFF. Stuff input here.
Richard M. Stallman <rms@gnu.org>
parents: 3655
diff changeset
384 shut_down_emacs (sig, 0, Qnil);
1945
b07c27b4dca7 * emacs.c (fatal_error_signal): Unblock the signal before we try
Jim Blandy <jimb@redhat.com>
parents: 1917
diff changeset
385 }
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
386
1945
b07c27b4dca7 * emacs.c (fatal_error_signal): Unblock the signal before we try
Jim Blandy <jimb@redhat.com>
parents: 1917
diff changeset
387 /* Signal the same code; this time it will really be fatal.
b07c27b4dca7 * emacs.c (fatal_error_signal): Unblock the signal before we try
Jim Blandy <jimb@redhat.com>
parents: 1917
diff changeset
388 Remember that since we're in a signal handler, the signal we're
b07c27b4dca7 * emacs.c (fatal_error_signal): Unblock the signal before we try
Jim Blandy <jimb@redhat.com>
parents: 1917
diff changeset
389 going to send is probably blocked, so we have to unblock it if we
b07c27b4dca7 * emacs.c (fatal_error_signal): Unblock the signal before we try
Jim Blandy <jimb@redhat.com>
parents: 1917
diff changeset
390 want to really receive it. */
5493
2a0ba54aefb5 (main) [MSDOS]: Call init_environment. Set file types to
Richard M. Stallman <rms@gnu.org>
parents: 5364
diff changeset
391 #ifndef MSDOS
2118
454228f1c526 * emacs.c (__do_global_ctors, __do_global_ctors_aux,
Jim Blandy <jimb@redhat.com>
parents: 1945
diff changeset
392 sigunblock (sigmask (fatal_error_code));
5493
2a0ba54aefb5 (main) [MSDOS]: Call init_environment. Set file types to
Richard M. Stallman <rms@gnu.org>
parents: 5364
diff changeset
393 #endif
39576
d2a8cced572f (fatal_error_signal_hook): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 39036
diff changeset
394
d2a8cced572f (fatal_error_signal_hook): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 39036
diff changeset
395 if (fatal_error_signal_hook)
d2a8cced572f (fatal_error_signal_hook): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 39036
diff changeset
396 fatal_error_signal_hook ();
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
397
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
398 kill (getpid (), fatal_error_code);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
399 }
5236
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
400
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
401 #ifdef SIGDANGER
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
402
6171
7f1756b0b478 Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 6027
diff changeset
403 /* Handler for SIGDANGER. */
5236
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
404 SIGTYPE
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
405 memory_warning_signal (sig)
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
406 int sig;
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
407 {
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
408 signal (sig, memory_warning_signal);
58986
59945307b86b * syssignal.h: Declare main_thread.
Jan Djärv <jan.h.d@swipnet.se>
parents: 58895
diff changeset
409 SIGNAL_THREAD_CHECK (sig);
5236
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
410
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
411 malloc_warning ("Operating system warns that virtual memory is running low.\n");
7223
38931e897e56 (memory_warning_signal): Call force_auto_save_soon.
Richard M. Stallman <rms@gnu.org>
parents: 7164
diff changeset
412
38931e897e56 (memory_warning_signal): Call force_auto_save_soon.
Richard M. Stallman <rms@gnu.org>
parents: 7164
diff changeset
413 /* It might be unsafe to call do_auto_save now. */
38931e897e56 (memory_warning_signal): Call force_auto_save_soon.
Richard M. Stallman <rms@gnu.org>
parents: 7164
diff changeset
414 force_auto_save_soon ();
5236
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
415 }
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
416 #endif
20527
1f7533b3f045 (abort): New function.
Richard M. Stallman <rms@gnu.org>
parents: 20489
diff changeset
417
1f7533b3f045 (abort): New function.
Richard M. Stallman <rms@gnu.org>
parents: 20489
diff changeset
418 /* We define abort, rather than using it from the library,
21418
8e54230531dc (abort): Don't redefine on MSDOS.
Karl Heuer <kwzh@gnu.org>
parents: 21406
diff changeset
419 so that GDB can return from a breakpoint here.
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
420 MSDOS has its own definition in msdos.c. */
20527
1f7533b3f045 (abort): New function.
Richard M. Stallman <rms@gnu.org>
parents: 20489
diff changeset
421
21832
daf559874709 (abort): Omit this definition, if NO_ABORT.
Richard M. Stallman <rms@gnu.org>
parents: 21812
diff changeset
422 #if ! defined (DOS_NT) && ! defined (NO_ABORT)
26526
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
423
91702
b7a5a89054dc * configure.in (LIBX11_MACHINE, HAVE_XFREE386): Remove code
Dan Nicolaescu <dann@ics.uci.edu>
parents: 91634
diff changeset
424 void
109364
89a16701cde1 Convert old-style definitions
Andreas Schwab <schwab@linux-m68k.org>
parents: 109361
diff changeset
425 abort (void)
20527
1f7533b3f045 (abort): New function.
Richard M. Stallman <rms@gnu.org>
parents: 20489
diff changeset
426 {
1f7533b3f045 (abort): New function.
Richard M. Stallman <rms@gnu.org>
parents: 20489
diff changeset
427 kill (getpid (), SIGABRT);
21832
daf559874709 (abort): Omit this definition, if NO_ABORT.
Richard M. Stallman <rms@gnu.org>
parents: 21812
diff changeset
428 /* This shouldn't be executed, but it prevents a warning. */
daf559874709 (abort): Omit this definition, if NO_ABORT.
Richard M. Stallman <rms@gnu.org>
parents: 21812
diff changeset
429 exit (1);
20527
1f7533b3f045 (abort): New function.
Richard M. Stallman <rms@gnu.org>
parents: 20489
diff changeset
430 }
21418
8e54230531dc (abort): Don't redefine on MSDOS.
Karl Heuer <kwzh@gnu.org>
parents: 21406
diff changeset
431 #endif
20527
1f7533b3f045 (abort): New function.
Richard M. Stallman <rms@gnu.org>
parents: 20489
diff changeset
432
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
433
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
434 /* Code for dealing with Lisp access to the Unix command line. */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
435
21514
fa9ff387d260 Fix -Wimplicit warnings.
Andreas Schwab <schwab@suse.de>
parents: 21449
diff changeset
436 static void
109139
c25c24812fb1 Convert declarations or definitions to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
437 init_cmdargs (int argc, char **argv, int skip_args)
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
438 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
439 register int i;
16386
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
440 Lisp_Object name, dir, tem;
46293
1fb8f75062c6 Use macro SPECPDL_INDEX.
Juanma Barranquero <lekktu@gmail.com>
parents: 46285
diff changeset
441 int count = SPECPDL_INDEX ();
16386
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
442 Lisp_Object raw_name;
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
443
7869
3b27d2451f83 (init_cmdargs): Set up initial_argv, initial_argc.
Richard M. Stallman <rms@gnu.org>
parents: 7788
diff changeset
444 initial_argv = argv;
3b27d2451f83 (init_cmdargs): Set up initial_argv, initial_argc.
Richard M. Stallman <rms@gnu.org>
parents: 7788
diff changeset
445 initial_argc = argc;
3b27d2451f83 (init_cmdargs): Set up initial_argv, initial_argc.
Richard M. Stallman <rms@gnu.org>
parents: 7788
diff changeset
446
16386
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
447 raw_name = build_string (argv[0]);
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
448
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
449 /* Add /: to the front of the name
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
450 if it would otherwise be treated as magic. */
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
451 tem = Ffind_file_name_handler (raw_name, Qt);
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
452 if (! NILP (tem))
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
453 raw_name = concat2 (build_string ("/:"), raw_name);
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
454
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
455 Vinvocation_name = Ffile_name_nondirectory (raw_name);
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
456 Vinvocation_directory = Ffile_name_directory (raw_name);
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
457
4484
c589c71324dd (Vinvocation_directory): New var.
Richard M. Stallman <rms@gnu.org>
parents: 4303
diff changeset
458 /* If we got no directory in argv[0], search PATH to find where
c589c71324dd (Vinvocation_directory): New var.
Richard M. Stallman <rms@gnu.org>
parents: 4303
diff changeset
459 Emacs actually came from. */
c589c71324dd (Vinvocation_directory): New var.
Richard M. Stallman <rms@gnu.org>
parents: 4303
diff changeset
460 if (NILP (Vinvocation_directory))
c589c71324dd (Vinvocation_directory): New var.
Richard M. Stallman <rms@gnu.org>
parents: 4303
diff changeset
461 {
c589c71324dd (Vinvocation_directory): New var.
Richard M. Stallman <rms@gnu.org>
parents: 4303
diff changeset
462 Lisp_Object found;
c589c71324dd (Vinvocation_directory): New var.
Richard M. Stallman <rms@gnu.org>
parents: 4303
diff changeset
463 int yes = openp (Vexec_path, Vinvocation_name,
45003
4209fda9d03f (init_cmdargs): Update call to openp.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 44890
diff changeset
464 Vexec_suffixes, &found, make_number (X_OK));
4632
48634fa190aa (init_cmdargs): Check openp result for 1, not != 0.
Richard M. Stallman <rms@gnu.org>
parents: 4619
diff changeset
465 if (yes == 1)
16386
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
466 {
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
467 /* Add /: to the front of the name
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
468 if it would otherwise be treated as magic. */
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
469 tem = Ffind_file_name_handler (found, Qt);
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
470 if (! NILP (tem))
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
471 found = concat2 (build_string ("/:"), found);
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
472 Vinvocation_directory = Ffile_name_directory (found);
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
473 }
4484
c589c71324dd (Vinvocation_directory): New var.
Richard M. Stallman <rms@gnu.org>
parents: 4303
diff changeset
474 }
2279
012b04efa234 * emacs.c (Finvocation_name): New function.
Jim Blandy <jimb@redhat.com>
parents: 2118
diff changeset
475
12383
e53c62fff24e (init_cmdargs): Make Vinvocation_directory
Richard M. Stallman <rms@gnu.org>
parents: 12376
diff changeset
476 if (!NILP (Vinvocation_directory)
e53c62fff24e (init_cmdargs): Make Vinvocation_directory
Richard M. Stallman <rms@gnu.org>
parents: 12376
diff changeset
477 && NILP (Ffile_name_absolute_p (Vinvocation_directory)))
16386
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
478 /* Emacs was started with relative path, like ./emacs.
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
479 Make it absolute. */
12383
e53c62fff24e (init_cmdargs): Make Vinvocation_directory
Richard M. Stallman <rms@gnu.org>
parents: 12376
diff changeset
480 Vinvocation_directory = Fexpand_file_name (Vinvocation_directory, Qnil);
e53c62fff24e (init_cmdargs): Make Vinvocation_directory
Richard M. Stallman <rms@gnu.org>
parents: 12376
diff changeset
481
5763
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
482 Vinstallation_directory = Qnil;
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
483
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
484 if (!NILP (Vinvocation_directory))
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
485 {
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
486 dir = Vinvocation_directory;
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
487 name = Fexpand_file_name (Vinvocation_name, dir);
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
488 while (1)
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
489 {
7002
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
490 Lisp_Object tem, lib_src_exists;
5763
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
491 Lisp_Object etc_exists, info_exists;
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
492
7002
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
493 /* See if dir contains subdirs for use by Emacs.
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
494 Check for the ones that would exist in a build directory,
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
495 not including lisp and info. */
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
496 tem = Fexpand_file_name (build_string ("lib-src"), dir);
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
497 lib_src_exists = Ffile_exists_p (tem);
16865
0e79ed2e445b (init_cmdargs): Allow `installation-directory'
Richard M. Stallman <rms@gnu.org>
parents: 16749
diff changeset
498
17312
647d2774c99e (init_cmdargs) [MSDOS]: Make the change that sets
Eli Zaretskii <eliz@gnu.org>
parents: 17060
diff changeset
499 #ifdef MSDOS
16865
0e79ed2e445b (init_cmdargs): Allow `installation-directory'
Richard M. Stallman <rms@gnu.org>
parents: 16749
diff changeset
500 /* MSDOS installations frequently remove lib-src, but we still
0e79ed2e445b (init_cmdargs): Allow `installation-directory'
Richard M. Stallman <rms@gnu.org>
parents: 16749
diff changeset
501 must set installation-directory, or else info won't find
0e79ed2e445b (init_cmdargs): Allow `installation-directory'
Richard M. Stallman <rms@gnu.org>
parents: 16749
diff changeset
502 its files (it uses the value of installation-directory). */
0e79ed2e445b (init_cmdargs): Allow `installation-directory'
Richard M. Stallman <rms@gnu.org>
parents: 16749
diff changeset
503 tem = Fexpand_file_name (build_string ("info"), dir);
0e79ed2e445b (init_cmdargs): Allow `installation-directory'
Richard M. Stallman <rms@gnu.org>
parents: 16749
diff changeset
504 info_exists = Ffile_exists_p (tem);
17312
647d2774c99e (init_cmdargs) [MSDOS]: Make the change that sets
Eli Zaretskii <eliz@gnu.org>
parents: 17060
diff changeset
505 #else
647d2774c99e (init_cmdargs) [MSDOS]: Make the change that sets
Eli Zaretskii <eliz@gnu.org>
parents: 17060
diff changeset
506 info_exists = Qnil;
647d2774c99e (init_cmdargs) [MSDOS]: Make the change that sets
Eli Zaretskii <eliz@gnu.org>
parents: 17060
diff changeset
507 #endif
16865
0e79ed2e445b (init_cmdargs): Allow `installation-directory'
Richard M. Stallman <rms@gnu.org>
parents: 16749
diff changeset
508
0e79ed2e445b (init_cmdargs): Allow `installation-directory'
Richard M. Stallman <rms@gnu.org>
parents: 16749
diff changeset
509 if (!NILP (lib_src_exists) || !NILP (info_exists))
5763
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
510 {
7002
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
511 tem = Fexpand_file_name (build_string ("etc"), dir);
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
512 etc_exists = Ffile_exists_p (tem);
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
513 if (!NILP (etc_exists))
5763
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
514 {
7002
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
515 Vinstallation_directory
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
516 = Ffile_name_as_directory (dir);
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
517 break;
5763
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
518 }
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
519 }
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
520
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
521 /* See if dir's parent contains those subdirs. */
7002
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
522 tem = Fexpand_file_name (build_string ("../lib-src"), dir);
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
523 lib_src_exists = Ffile_exists_p (tem);
16865
0e79ed2e445b (init_cmdargs): Allow `installation-directory'
Richard M. Stallman <rms@gnu.org>
parents: 16749
diff changeset
524
17312
647d2774c99e (init_cmdargs) [MSDOS]: Make the change that sets
Eli Zaretskii <eliz@gnu.org>
parents: 17060
diff changeset
525
647d2774c99e (init_cmdargs) [MSDOS]: Make the change that sets
Eli Zaretskii <eliz@gnu.org>
parents: 17060
diff changeset
526 #ifdef MSDOS
647d2774c99e (init_cmdargs) [MSDOS]: Make the change that sets
Eli Zaretskii <eliz@gnu.org>
parents: 17060
diff changeset
527 /* See the MSDOS commentary above. */
16865
0e79ed2e445b (init_cmdargs): Allow `installation-directory'
Richard M. Stallman <rms@gnu.org>
parents: 16749
diff changeset
528 tem = Fexpand_file_name (build_string ("../info"), dir);
0e79ed2e445b (init_cmdargs): Allow `installation-directory'
Richard M. Stallman <rms@gnu.org>
parents: 16749
diff changeset
529 info_exists = Ffile_exists_p (tem);
17312
647d2774c99e (init_cmdargs) [MSDOS]: Make the change that sets
Eli Zaretskii <eliz@gnu.org>
parents: 17060
diff changeset
530 #else
647d2774c99e (init_cmdargs) [MSDOS]: Make the change that sets
Eli Zaretskii <eliz@gnu.org>
parents: 17060
diff changeset
531 info_exists = Qnil;
647d2774c99e (init_cmdargs) [MSDOS]: Make the change that sets
Eli Zaretskii <eliz@gnu.org>
parents: 17060
diff changeset
532 #endif
16865
0e79ed2e445b (init_cmdargs): Allow `installation-directory'
Richard M. Stallman <rms@gnu.org>
parents: 16749
diff changeset
533
0e79ed2e445b (init_cmdargs): Allow `installation-directory'
Richard M. Stallman <rms@gnu.org>
parents: 16749
diff changeset
534 if (!NILP (lib_src_exists) || !NILP (info_exists))
5763
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
535 {
7002
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
536 tem = Fexpand_file_name (build_string ("../etc"), dir);
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
537 etc_exists = Ffile_exists_p (tem);
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
538 if (!NILP (etc_exists))
5763
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
539 {
7002
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
540 tem = Fexpand_file_name (build_string (".."), dir);
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
541 Vinstallation_directory
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
542 = Ffile_name_as_directory (tem);
e9667f7a0cbc (init_cmdargs): Just check for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 6863
diff changeset
543 break;
5763
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
544 }
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
545 }
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
546
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
547 /* If the Emacs executable is actually a link,
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
548 next try the dir that the link points into. */
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
549 tem = Ffile_symlink_p (name);
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
550 if (!NILP (tem))
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
551 {
8704
ec7ec0e35e5e (init_cmdargs): After chasing link, use only the expanded name.
Richard M. Stallman <rms@gnu.org>
parents: 7869
diff changeset
552 name = Fexpand_file_name (tem, dir);
5763
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
553 dir = Ffile_name_directory (name);
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
554 }
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
555 else
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
556 break;
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
557 }
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
558 }
ec298224882d (init_cmdargs): Set Vinstallation_directory.
Richard M. Stallman <rms@gnu.org>
parents: 5583
diff changeset
559
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
560 Vcommand_line_args = Qnil;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
561
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
562 for (i = argc - 1; i >= 0; i--)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
563 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
564 if (i == 0 || i > skip_args)
58617
48bd22b33f65 (init_cmdargs): Set unibyte strings in Vcommand_line_args.
Kenichi Handa <handa@m17n.org>
parents: 58088
diff changeset
565 /* For the moment, we keep arguments as is in unibyte strings.
48bd22b33f65 (init_cmdargs): Set unibyte strings in Vcommand_line_args.
Kenichi Handa <handa@m17n.org>
parents: 58088
diff changeset
566 They are decoded in the function command-line after we know
48bd22b33f65 (init_cmdargs): Set unibyte strings in Vcommand_line_args.
Kenichi Handa <handa@m17n.org>
parents: 58088
diff changeset
567 locale-coding-system. */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
568 Vcommand_line_args
58632
c0b9a69b829b (malloc_initialize_hook): Don't free malloc_state_ptr if
Kim F. Storm <storm@cua.dk>
parents: 58617
diff changeset
569 = Fcons (make_unibyte_string (argv[i], strlen (argv[i])),
58617
48bd22b33f65 (init_cmdargs): Set unibyte strings in Vcommand_line_args.
Kenichi Handa <handa@m17n.org>
parents: 58088
diff changeset
570 Vcommand_line_args);
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
571 }
16386
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
572
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
573 unbind_to (count, Qnil);
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
574 }
2279
012b04efa234 * emacs.c (Finvocation_name): New function.
Jim Blandy <jimb@redhat.com>
parents: 2118
diff changeset
575
012b04efa234 * emacs.c (Finvocation_name): New function.
Jim Blandy <jimb@redhat.com>
parents: 2118
diff changeset
576 DEFUN ("invocation-name", Finvocation_name, Sinvocation_name, 0, 0, 0,
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
577 doc: /* Return the program name that was used to run Emacs.
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
578 Any directory names are omitted. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109165
diff changeset
579 (void)
2279
012b04efa234 * emacs.c (Finvocation_name): New function.
Jim Blandy <jimb@redhat.com>
parents: 2118
diff changeset
580 {
012b04efa234 * emacs.c (Finvocation_name): New function.
Jim Blandy <jimb@redhat.com>
parents: 2118
diff changeset
581 return Fcopy_sequence (Vinvocation_name);
012b04efa234 * emacs.c (Finvocation_name): New function.
Jim Blandy <jimb@redhat.com>
parents: 2118
diff changeset
582 }
012b04efa234 * emacs.c (Finvocation_name): New function.
Jim Blandy <jimb@redhat.com>
parents: 2118
diff changeset
583
4484
c589c71324dd (Vinvocation_directory): New var.
Richard M. Stallman <rms@gnu.org>
parents: 4303
diff changeset
584 DEFUN ("invocation-directory", Finvocation_directory, Sinvocation_directory,
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
585 0, 0, 0,
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
586 doc: /* Return the directory name in which the Emacs executable was located. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109165
diff changeset
587 (void)
4484
c589c71324dd (Vinvocation_directory): New var.
Richard M. Stallman <rms@gnu.org>
parents: 4303
diff changeset
588 {
c589c71324dd (Vinvocation_directory): New var.
Richard M. Stallman <rms@gnu.org>
parents: 4303
diff changeset
589 return Fcopy_sequence (Vinvocation_directory);
c589c71324dd (Vinvocation_directory): New var.
Richard M. Stallman <rms@gnu.org>
parents: 4303
diff changeset
590 }
c589c71324dd (Vinvocation_directory): New var.
Richard M. Stallman <rms@gnu.org>
parents: 4303
diff changeset
591
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
592
14202
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
593 #ifdef HAVE_TZSET
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
594 /* A valid but unlikely value for the TZ environment value.
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
595 It is OK (though a bit slower) if the user actually chooses this value. */
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
596 static char dump_tz[] = "UtC0";
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
597 #endif
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
598
2118
454228f1c526 * emacs.c (__do_global_ctors, __do_global_ctors_aux,
Jim Blandy <jimb@redhat.com>
parents: 1945
diff changeset
599 #ifndef ORDINARY_LINK
1061
06b98c795200 (__do_global_ctors, __do_global_ctors_aux): New dummy fns.
Richard M. Stallman <rms@gnu.org>
parents: 1043
diff changeset
600 /* 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
601 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
602 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
603 (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
604 #ifdef __GNUC__
6467
53c14a4f9307 (__do_global_ctors, __do_global_ctors_aux)
Richard M. Stallman <rms@gnu.org>
parents: 6428
diff changeset
605 #ifndef GCC_CTORS_IN_LIBC
109361
8ee7c0cee7f9 Convert function definitions to standard C and some cleanups.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109315
diff changeset
606 void __do_global_ctors (void)
1070
b0f508376593 (__main): New dummy function.
Richard M. Stallman <rms@gnu.org>
parents: 1061
diff changeset
607 {}
109361
8ee7c0cee7f9 Convert function definitions to standard C and some cleanups.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109315
diff changeset
608 void __do_global_ctors_aux (void)
1061
06b98c795200 (__do_global_ctors, __do_global_ctors_aux): New dummy fns.
Richard M. Stallman <rms@gnu.org>
parents: 1043
diff changeset
609 {}
109361
8ee7c0cee7f9 Convert function definitions to standard C and some cleanups.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109315
diff changeset
610 void __do_global_dtors (void)
1074
ab1964dc212c (__do_global_dtors): New dummy function.
Richard M. Stallman <rms@gnu.org>
parents: 1070
diff changeset
611 {}
51093
2c04067bcdc0 Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 50995
diff changeset
612 /* GNU/Linux has a bug in its library; avoid an error. */
41969
e669966d496e Test GNU_LINUX, not LINUX.
Richard M. Stallman <rms@gnu.org>
parents: 41261
diff changeset
613 #ifndef GNU_LINUX
1070
b0f508376593 (__main): New dummy function.
Richard M. Stallman <rms@gnu.org>
parents: 1061
diff changeset
614 char * __CTOR_LIST__[2] = { (char *) (-1), 0 };
4619
fdb92f0aa8c7 (__CTOR_LIST__): Don't declare it on Linux.
Richard M. Stallman <rms@gnu.org>
parents: 4589
diff changeset
615 #endif
1070
b0f508376593 (__main): New dummy function.
Richard M. Stallman <rms@gnu.org>
parents: 1061
diff changeset
616 char * __DTOR_LIST__[2] = { (char *) (-1), 0 };
6467
53c14a4f9307 (__do_global_ctors, __do_global_ctors_aux)
Richard M. Stallman <rms@gnu.org>
parents: 6428
diff changeset
617 #endif /* GCC_CTORS_IN_LIBC */
109361
8ee7c0cee7f9 Convert function definitions to standard C and some cleanups.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109315
diff changeset
618 void __main (void)
1061
06b98c795200 (__do_global_ctors, __do_global_ctors_aux): New dummy fns.
Richard M. Stallman <rms@gnu.org>
parents: 1043
diff changeset
619 {}
06b98c795200 (__do_global_ctors, __do_global_ctors_aux): New dummy fns.
Richard M. Stallman <rms@gnu.org>
parents: 1043
diff changeset
620 #endif /* __GNUC__ */
2118
454228f1c526 * emacs.c (__do_global_ctors, __do_global_ctors_aux,
Jim Blandy <jimb@redhat.com>
parents: 1945
diff changeset
621 #endif /* ORDINARY_LINK */
1061
06b98c795200 (__do_global_ctors, __do_global_ctors_aux): New dummy fns.
Richard M. Stallman <rms@gnu.org>
parents: 1043
diff changeset
622
9094
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
623 /* Test whether the next argument in ARGV matches SSTR or a prefix of
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
624 LSTR (at least MINLEN characters). If so, then if VALPTR is non-null
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
625 (the argument is supposed to have a value) store in *VALPTR either
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
626 the next argument or the portion of this one after the equal sign.
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
627 ARGV is read starting at position *SKIPPTR; this index is advanced
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
628 by the number of arguments used.
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
629
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
630 Too bad we can't just use getopt for all of this, but we don't have
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
631 enough information to do it right. */
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
632
9094
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
633 static int
109717
8949aad5e992 Use const char* instead of char*.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109665
diff changeset
634 argmatch (char **argv, int argc, const char *sstr, const char *lstr, int minlen, char **valptr, int *skipptr)
9094
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
635 {
31829
43566b0aec59 Avoid some more compiler warnings.
Gerd Moellmann <gerd@gnu.org>
parents: 31602
diff changeset
636 char *p = NULL;
9094
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
637 int arglen;
10111
add3c6d21876 (argmatch): Take argc as arg; don't go past end of argv.
Richard M. Stallman <rms@gnu.org>
parents: 10102
diff changeset
638 char *arg;
add3c6d21876 (argmatch): Take argc as arg; don't go past end of argv.
Richard M. Stallman <rms@gnu.org>
parents: 10102
diff changeset
639
add3c6d21876 (argmatch): Take argc as arg; don't go past end of argv.
Richard M. Stallman <rms@gnu.org>
parents: 10102
diff changeset
640 /* Don't access argv[argc]; give up in advance. */
add3c6d21876 (argmatch): Take argc as arg; don't go past end of argv.
Richard M. Stallman <rms@gnu.org>
parents: 10102
diff changeset
641 if (argc <= *skipptr + 1)
add3c6d21876 (argmatch): Take argc as arg; don't go past end of argv.
Richard M. Stallman <rms@gnu.org>
parents: 10102
diff changeset
642 return 0;
add3c6d21876 (argmatch): Take argc as arg; don't go past end of argv.
Richard M. Stallman <rms@gnu.org>
parents: 10102
diff changeset
643
add3c6d21876 (argmatch): Take argc as arg; don't go past end of argv.
Richard M. Stallman <rms@gnu.org>
parents: 10102
diff changeset
644 arg = argv[*skipptr+1];
9094
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
645 if (arg == NULL)
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
646 return 0;
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
647 if (strcmp (arg, sstr) == 0)
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
648 {
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
649 if (valptr != NULL)
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
650 {
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
651 *valptr = argv[*skipptr+2];
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
652 *skipptr += 2;
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
653 }
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
654 else
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
655 *skipptr += 1;
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
656 return 1;
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
657 }
109315
8f3464b85afb Use strchr, strrchr instead of index, rindex
Andreas Schwab <schwab@linux-m68k.org>
parents: 109313
diff changeset
658 arglen = (valptr != NULL && (p = strchr (arg, '=')) != NULL
9094
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
659 ? p - arg : strlen (arg));
10102
339e129f8874 (argmatch): Handle lstr == 0.
Richard M. Stallman <rms@gnu.org>
parents: 10032
diff changeset
660 if (lstr == 0 || arglen < minlen || strncmp (arg, lstr, arglen) != 0)
9094
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
661 return 0;
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
662 else if (valptr == NULL)
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
663 {
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
664 *skipptr += 1;
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
665 return 1;
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
666 }
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
667 else if (p != NULL)
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
668 {
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
669 *valptr = p+1;
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
670 *skipptr += 1;
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
671 return 1;
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
672 }
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
673 else if (argv[*skipptr+2] != NULL)
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
674 {
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
675 *valptr = argv[*skipptr+2];
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
676 *skipptr += 2;
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
677 return 1;
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
678 }
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
679 else
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
680 {
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
681 return 0;
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
682 }
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
683 }
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
684
24900
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
685 #ifdef DOUG_LEA_MALLOC
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
686
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
687 /* malloc can be invoked even before main (e.g. by the dynamic
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
688 linker), so the dumped malloc state must be restored as early as
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
689 possible using this special hook. */
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
690
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
691 static void
109139
c25c24812fb1 Convert declarations or definitions to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
692 malloc_initialize_hook (void)
24900
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
693 {
31094
7949e7792b02 (malloc_initialize_hook) [USE_CRT_DLL]: Remove
Andrew Innes <andrewi@gnu.org>
parents: 30834
diff changeset
694 #ifndef USE_CRT_DLL
24900
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
695 extern char **environ;
31094
7949e7792b02 (malloc_initialize_hook) [USE_CRT_DLL]: Remove
Andrew Innes <andrewi@gnu.org>
parents: 30834
diff changeset
696 #endif
24900
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
697
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
698 if (initialized)
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
699 {
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
700 if (!malloc_using_checking)
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
701 /* Work around a bug in glibc's malloc. MALLOC_CHECK_ must be
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
702 ignored if the heap to be restored was constructed without
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
703 malloc checking. Can't use unsetenv, since that calls malloc. */
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
704 {
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
705 char **p;
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
706
36189
3873da2fd8b1 (malloc_initialize_hook): Handle case thet `environ'
Gerd Moellmann <gerd@gnu.org>
parents: 33886
diff changeset
707 for (p = environ; p && *p; p++)
24900
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
708 if (strncmp (*p, "MALLOC_CHECK_=", 14) == 0)
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
709 {
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
710 do
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
711 *p = p[1];
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
712 while (*++p);
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
713 break;
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
714 }
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
715 }
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
716
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
717 malloc_set_state (malloc_state_ptr);
58632
c0b9a69b829b (malloc_initialize_hook): Don't free malloc_state_ptr if
Kim F. Storm <storm@cua.dk>
parents: 58617
diff changeset
718 #ifndef XMALLOC_OVERRUN_CHECK
24900
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
719 free (malloc_state_ptr);
58632
c0b9a69b829b (malloc_initialize_hook): Don't free malloc_state_ptr if
Kim F. Storm <storm@cua.dk>
parents: 58617
diff changeset
720 #endif
24900
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
721 }
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
722 else
57623
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
723 {
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
724 if (my_heap_start == 0)
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
725 my_heap_start = sbrk (0);
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
726 malloc_using_checking = getenv ("MALLOC_CHECK_") != NULL;
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
727 }
24900
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
728 }
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
729
109139
c25c24812fb1 Convert declarations or definitions to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
730 void (*__malloc_initialize_hook) (void) = malloc_initialize_hook;
24900
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
731
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
732 #endif /* DOUG_LEA_MALLOC */
b57b0a4e4230 [DOUG_LEA_MALLOC] (malloc_initialize_hook):
Karl Heuer <kwzh@gnu.org>
parents: 24464
diff changeset
733
40405
ea36983f19d3 (bug_reporting_address): New function.
Pavel Janík <Pavel@Janik.cz>
parents: 40372
diff changeset
734
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
735 /* ARGSUSED */
21514
fa9ff387d260 Fix -Wimplicit warnings.
Andreas Schwab <schwab@suse.de>
parents: 21449
diff changeset
736 int
97142
c3512b2085a0 * bitmaps/README:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97043
diff changeset
737 main (int argc, char **argv)
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
738 {
27748
b980acbcfbfd (main): Use #if GC_MARK_STACK instead of #ifdef.
Gerd Moellmann <gerd@gnu.org>
parents: 27740
diff changeset
739 #if GC_MARK_STACK
27740
048c82411361 (main) [GC_MARK_STACK]: Initialize stack_base.
Gerd Moellmann <gerd@gnu.org>
parents: 27727
diff changeset
740 Lisp_Object dummy;
048c82411361 (main) [GC_MARK_STACK]: Initialize stack_base.
Gerd Moellmann <gerd@gnu.org>
parents: 27727
diff changeset
741 #endif
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
742 char stack_bottom_variable;
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
743 int do_initial_setlocale;
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
744 int skip_args = 0;
16046
53cf5adf7fd1 [HAVE_SETRLIMIT]: Include time.h and resource.h.
Richard M. Stallman <rms@gnu.org>
parents: 15952
diff changeset
745 #ifdef HAVE_SETRLIMIT
53cf5adf7fd1 [HAVE_SETRLIMIT]: Include time.h and resource.h.
Richard M. Stallman <rms@gnu.org>
parents: 15952
diff changeset
746 struct rlimit rlim;
53cf5adf7fd1 [HAVE_SETRLIMIT]: Include time.h and resource.h.
Richard M. Stallman <rms@gnu.org>
parents: 15952
diff changeset
747 #endif
22553
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
748 int no_loadup = 0;
47059
83efa005a987 (main): Handle --script.
Richard M. Stallman <rms@gnu.org>
parents: 47047
diff changeset
749 char *junk = 0;
99158
d1d986962044 * emacs.c (daemon_name): New variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 99148
diff changeset
750 char *dname_arg = 0;
101398
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
751 #ifdef NS_IMPL_COCOA
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
752 char dname_arg2[80];
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
753 #endif
108213
e6266e624471 Run kill-emacs when exiting for display closed or SIGTERM/HUP.
Jan D. <jan.h.d@swipnet.se>
parents: 107737
diff changeset
754 char *ch_to_dir;
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
755
27748
b980acbcfbfd (main): Use #if GC_MARK_STACK instead of #ifdef.
Gerd Moellmann <gerd@gnu.org>
parents: 27740
diff changeset
756 #if GC_MARK_STACK
27740
048c82411361 (main) [GC_MARK_STACK]: Initialize stack_base.
Gerd Moellmann <gerd@gnu.org>
parents: 27727
diff changeset
757 stack_base = &dummy;
048c82411361 (main) [GC_MARK_STACK]: Initialize stack_base.
Gerd Moellmann <gerd@gnu.org>
parents: 27727
diff changeset
758 #endif
048c82411361 (main) [GC_MARK_STACK]: Initialize stack_base.
Gerd Moellmann <gerd@gnu.org>
parents: 27727
diff changeset
759
106497
d06619fa1742 * configure.in: Allow compiling Emacs with GTK on Cygwin.
Chong Yidong <cyd@stupidchicken.com>
parents: 106085
diff changeset
760 #if defined (USE_GTK) && defined (G_SLICE_ALWAYS_MALLOC)
d06619fa1742 * configure.in: Allow compiling Emacs with GTK on Cygwin.
Chong Yidong <cyd@stupidchicken.com>
parents: 106085
diff changeset
761 /* This is used by the Cygwin build. */
d06619fa1742 * configure.in: Allow compiling Emacs with GTK on Cygwin.
Chong Yidong <cyd@stupidchicken.com>
parents: 106085
diff changeset
762 setenv ("G_SLICE", "always-malloc", 1);
d06619fa1742 * configure.in: Allow compiling Emacs with GTK on Cygwin.
Chong Yidong <cyd@stupidchicken.com>
parents: 106085
diff changeset
763 #endif
d06619fa1742 * configure.in: Allow compiling Emacs with GTK on Cygwin.
Chong Yidong <cyd@stupidchicken.com>
parents: 106085
diff changeset
764
57623
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
765 if (!initialized)
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
766 {
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
767 extern char my_endbss[];
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
768 extern char *my_endbss_static;
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
769
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
770 if (my_heap_start == 0)
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
771 my_heap_start = sbrk (0);
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
772
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
773 heap_bss_diff = (char *)my_heap_start - max (my_endbss, my_endbss_static);
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
774 }
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
775
19729
fce71d3f95b1 (main): Call run_time_remap earlier, before any use of stdio.
Richard M. Stallman <rms@gnu.org>
parents: 19354
diff changeset
776 #ifdef RUN_TIME_REMAP
fce71d3f95b1 (main): Call run_time_remap earlier, before any use of stdio.
Richard M. Stallman <rms@gnu.org>
parents: 19354
diff changeset
777 if (initialized)
fce71d3f95b1 (main): Call run_time_remap earlier, before any use of stdio.
Richard M. Stallman <rms@gnu.org>
parents: 19354
diff changeset
778 run_time_remap (argv[0]);
fce71d3f95b1 (main): Call run_time_remap earlier, before any use of stdio.
Richard M. Stallman <rms@gnu.org>
parents: 19354
diff changeset
779 #endif
fce71d3f95b1 (main): Call run_time_remap earlier, before any use of stdio.
Richard M. Stallman <rms@gnu.org>
parents: 19354
diff changeset
780
97266
80acedef7417 cleanup in s/darwin.h, define DARWIN_OS and use it instead of DARWIN and/or MAC_OSX; also, nsterm.m: small unrelated cleanups
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 97142
diff changeset
781 /* If using unexmacosx.c (set by s/darwin.h), we must do this. */
80acedef7417 cleanup in s/darwin.h, define DARWIN_OS and use it instead of DARWIN and/or MAC_OSX; also, nsterm.m: small unrelated cleanups
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 97142
diff changeset
782 #ifdef DARWIN_OS
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents: 44163
diff changeset
783 if (!initialized)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents: 44163
diff changeset
784 unexec_init_emacs_zone ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents: 44163
diff changeset
785 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents: 44163
diff changeset
786
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
787 sort_args (argc, argv);
22553
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
788 argc = 0;
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
789 while (argv[argc]) argc++;
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
790
108601
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
791 if (argmatch (argv, argc, "-version", "--version", 3, NULL, &skip_args))
10172
9a91efe65b85 (main): Fix conversion of --display to -d.
Richard M. Stallman <rms@gnu.org>
parents: 10150
diff changeset
792 {
108601
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
793 const char *version, *copyright;
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
794 if (initialized)
10172
9a91efe65b85 (main): Fix conversion of --display to -d.
Richard M. Stallman <rms@gnu.org>
parents: 10150
diff changeset
795 {
108601
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
796 Lisp_Object tem, tem2;
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
797 tem = Fsymbol_value (intern_c_string ("emacs-version"));
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
798 tem2 = Fsymbol_value (intern_c_string ("emacs-copyright"));
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
799 if (!STRINGP (tem))
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
800 {
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
801 fprintf (stderr, "Invalid value of `emacs-version'\n");
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
802 exit (1);
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
803 }
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
804 if (!STRINGP (tem2))
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
805 {
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
806 fprintf (stderr, "Invalid value of `emacs-copyright'\n");
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
807 exit (1);
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
808 }
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
809 else
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
810 {
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
811 version = SDATA (tem);
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
812 copyright = SDATA (tem2);
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
813 }
81221
eee526e38781 (main): Use `emacs-copyright' in --version output.
Glenn Morris <rgm@gnu.org>
parents: 76921
diff changeset
814 }
10172
9a91efe65b85 (main): Fix conversion of --display to -d.
Richard M. Stallman <rms@gnu.org>
parents: 10150
diff changeset
815 else
9a91efe65b85 (main): Fix conversion of --display to -d.
Richard M. Stallman <rms@gnu.org>
parents: 10150
diff changeset
816 {
108601
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
817 version = emacs_version;
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
818 copyright = emacs_copyright;
10172
9a91efe65b85 (main): Fix conversion of --display to -d.
Richard M. Stallman <rms@gnu.org>
parents: 10150
diff changeset
819 }
108601
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
820 printf ("GNU Emacs %s\n", version);
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
821 printf ("%s\n", copyright);
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
822 printf ("GNU Emacs comes with ABSOLUTELY NO WARRANTY.\n");
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
823 printf ("You may redistribute copies of Emacs\n");
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
824 printf ("under the terms of the GNU General Public License.\n");
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
825 printf ("For more information about these matters, ");
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
826 printf ("see the file named COPYING.\n");
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
827 exit (0);
10172
9a91efe65b85 (main): Fix conversion of --display to -d.
Richard M. Stallman <rms@gnu.org>
parents: 10150
diff changeset
828 }
108213
e6266e624471 Run kill-emacs when exiting for display closed or SIGTERM/HUP.
Jan D. <jan.h.d@swipnet.se>
parents: 107737
diff changeset
829 if (argmatch (argv, argc, "-chdir", "--chdir", 2, &ch_to_dir, &skip_args))
e6266e624471 Run kill-emacs when exiting for display closed or SIGTERM/HUP.
Jan D. <jan.h.d@swipnet.se>
parents: 107737
diff changeset
830 if (chdir (ch_to_dir) == -1)
e6266e624471 Run kill-emacs when exiting for display closed or SIGTERM/HUP.
Jan D. <jan.h.d@swipnet.se>
parents: 107737
diff changeset
831 {
e6266e624471 Run kill-emacs when exiting for display closed or SIGTERM/HUP.
Jan D. <jan.h.d@swipnet.se>
parents: 107737
diff changeset
832 fprintf (stderr, "%s: Can't chdir to %s: %s\n",
e6266e624471 Run kill-emacs when exiting for display closed or SIGTERM/HUP.
Jan D. <jan.h.d@swipnet.se>
parents: 107737
diff changeset
833 argv[0], ch_to_dir, strerror (errno));
e6266e624471 Run kill-emacs when exiting for display closed or SIGTERM/HUP.
Jan D. <jan.h.d@swipnet.se>
parents: 107737
diff changeset
834 exit (1);
e6266e624471 Run kill-emacs when exiting for display closed or SIGTERM/HUP.
Jan D. <jan.h.d@swipnet.se>
parents: 107737
diff changeset
835 }
e6266e624471 Run kill-emacs when exiting for display closed or SIGTERM/HUP.
Jan D. <jan.h.d@swipnet.se>
parents: 107737
diff changeset
836
10172
9a91efe65b85 (main): Fix conversion of --display to -d.
Richard M. Stallman <rms@gnu.org>
parents: 10150
diff changeset
837
57623
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
838 #ifdef HAVE_PERSONALITY_LINUX32
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
839 if (!initialized
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
840 && (strcmp (argv[argc-1], "dump") == 0
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
841 || strcmp (argv[argc-1], "bootstrap") == 0)
98957
9fe4a5c6bf9c (main): Unconditionally set PER_LINUX32 and exec
Jan Djärv <jan.h.d@swipnet.se>
parents: 98544
diff changeset
842 && ! getenv ("EMACS_HEAP_EXEC"))
57623
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
843 {
109748
e2f8226efb99 Fix -Wwrite_strings in general and for Gtk+ specific code.
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
844 static char heapexec[] = "EMACS_HEAP_EXEC=true";
98957
9fe4a5c6bf9c (main): Unconditionally set PER_LINUX32 and exec
Jan Djärv <jan.h.d@swipnet.se>
parents: 98544
diff changeset
845 /* Set this so we only do this once. */
109748
e2f8226efb99 Fix -Wwrite_strings in general and for Gtk+ specific code.
Jan D <jan.h.d@swipnet.se>
parents: 109717
diff changeset
846 putenv(heapexec);
63883
53559de8d502 2005-07-01 Masatake YAMATO <jet@gyve.org>
Masatake YAMATO <jet@gyve.org>
parents: 63015
diff changeset
847
98957
9fe4a5c6bf9c (main): Unconditionally set PER_LINUX32 and exec
Jan Djärv <jan.h.d@swipnet.se>
parents: 98544
diff changeset
848 /* A flag to turn off address randomization which is introduced
9fe4a5c6bf9c (main): Unconditionally set PER_LINUX32 and exec
Jan Djärv <jan.h.d@swipnet.se>
parents: 98544
diff changeset
849 in linux kernel shipped with fedora core 4 */
63883
53559de8d502 2005-07-01 Masatake YAMATO <jet@gyve.org>
Masatake YAMATO <jet@gyve.org>
parents: 63015
diff changeset
850 #define ADD_NO_RANDOMIZE 0x0040000
98957
9fe4a5c6bf9c (main): Unconditionally set PER_LINUX32 and exec
Jan Djärv <jan.h.d@swipnet.se>
parents: 98544
diff changeset
851 personality (PER_LINUX32 | ADD_NO_RANDOMIZE);
63883
53559de8d502 2005-07-01 Masatake YAMATO <jet@gyve.org>
Masatake YAMATO <jet@gyve.org>
parents: 63015
diff changeset
852 #undef ADD_NO_RANDOMIZE
53559de8d502 2005-07-01 Masatake YAMATO <jet@gyve.org>
Masatake YAMATO <jet@gyve.org>
parents: 63015
diff changeset
853
98957
9fe4a5c6bf9c (main): Unconditionally set PER_LINUX32 and exec
Jan Djärv <jan.h.d@swipnet.se>
parents: 98544
diff changeset
854 execvp (argv[0], argv);
57623
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
855
98957
9fe4a5c6bf9c (main): Unconditionally set PER_LINUX32 and exec
Jan Djärv <jan.h.d@swipnet.se>
parents: 98544
diff changeset
856 /* If the exec fails, try to dump anyway. */
9fe4a5c6bf9c (main): Unconditionally set PER_LINUX32 and exec
Jan Djärv <jan.h.d@swipnet.se>
parents: 98544
diff changeset
857 perror ("execvp");
57623
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
858 }
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
859 #endif /* HAVE_PERSONALITY_LINUX32 */
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
860
18758
231be0c398fd (main): Use setrlimit only if RLIMIT_STACK.
Richard M. Stallman <rms@gnu.org>
parents: 18683
diff changeset
861 #if defined (HAVE_SETRLIMIT) && defined (RLIMIT_STACK)
19354
85ac99b8b5c8 (main): Update re_max_failures so regex.c won't overflow
Richard M. Stallman <rms@gnu.org>
parents: 19310
diff changeset
862 /* Extend the stack space available.
85ac99b8b5c8 (main): Update re_max_failures so regex.c won't overflow
Richard M. Stallman <rms@gnu.org>
parents: 19310
diff changeset
863 Don't do that if dumping, since some systems (e.g. DJGPP)
85ac99b8b5c8 (main): Update re_max_failures so regex.c won't overflow
Richard M. Stallman <rms@gnu.org>
parents: 19310
diff changeset
864 might define a smaller stack limit at that time. */
85ac99b8b5c8 (main): Update re_max_failures so regex.c won't overflow
Richard M. Stallman <rms@gnu.org>
parents: 19310
diff changeset
865 if (1
85ac99b8b5c8 (main): Update re_max_failures so regex.c won't overflow
Richard M. Stallman <rms@gnu.org>
parents: 19310
diff changeset
866 #ifndef CANNOT_DUMP
85ac99b8b5c8 (main): Update re_max_failures so regex.c won't overflow
Richard M. Stallman <rms@gnu.org>
parents: 19310
diff changeset
867 && (!noninteractive || initialized)
85ac99b8b5c8 (main): Update re_max_failures so regex.c won't overflow
Richard M. Stallman <rms@gnu.org>
parents: 19310
diff changeset
868 #endif
85ac99b8b5c8 (main): Update re_max_failures so regex.c won't overflow
Richard M. Stallman <rms@gnu.org>
parents: 19310
diff changeset
869 && !getrlimit (RLIMIT_STACK, &rlim))
16046
53cf5adf7fd1 [HAVE_SETRLIMIT]: Include time.h and resource.h.
Richard M. Stallman <rms@gnu.org>
parents: 15952
diff changeset
870 {
16968
7c030111c6bb (main): Don't extend stack limit too far.
Richard M. Stallman <rms@gnu.org>
parents: 16865
diff changeset
871 long newlim;
65764
375ab086d366 * image.c (slurp_file, xbm_read_bitmap_data): Cast to the correct
Dan Nicolaescu <dann@ics.uci.edu>
parents: 65540
diff changeset
872 extern size_t re_max_failures;
20412
31468445f518 (main): Fix the stack-limit code to calculate
Karl Heuer <kwzh@gnu.org>
parents: 20037
diff changeset
873 /* Approximate the amount regex.c needs per unit of re_max_failures. */
31468445f518 (main): Fix the stack-limit code to calculate
Karl Heuer <kwzh@gnu.org>
parents: 20037
diff changeset
874 int ratio = 20 * sizeof (char *);
31468445f518 (main): Fix the stack-limit code to calculate
Karl Heuer <kwzh@gnu.org>
parents: 20037
diff changeset
875 /* Then add 33% to cover the size of the smaller stacks that regex.c
31468445f518 (main): Fix the stack-limit code to calculate
Karl Heuer <kwzh@gnu.org>
parents: 20037
diff changeset
876 successively allocates and discards, on its way to the maximum. */
31468445f518 (main): Fix the stack-limit code to calculate
Karl Heuer <kwzh@gnu.org>
parents: 20037
diff changeset
877 ratio += ratio / 3;
31468445f518 (main): Fix the stack-limit code to calculate
Karl Heuer <kwzh@gnu.org>
parents: 20037
diff changeset
878 /* Add in some extra to cover
31468445f518 (main): Fix the stack-limit code to calculate
Karl Heuer <kwzh@gnu.org>
parents: 20037
diff changeset
879 what we're likely to use for other reasons. */
31468445f518 (main): Fix the stack-limit code to calculate
Karl Heuer <kwzh@gnu.org>
parents: 20037
diff changeset
880 newlim = re_max_failures * ratio + 200000;
18683
ec9c20bede0c (main) [__NetBSD__]: Round up new stack limit to page bdry.
Richard M. Stallman <rms@gnu.org>
parents: 18514
diff changeset
881 #ifdef __NetBSD__
ec9c20bede0c (main) [__NetBSD__]: Round up new stack limit to page bdry.
Richard M. Stallman <rms@gnu.org>
parents: 18514
diff changeset
882 /* NetBSD (at least NetBSD 1.2G and former) has a bug in its
ec9c20bede0c (main) [__NetBSD__]: Round up new stack limit to page bdry.
Richard M. Stallman <rms@gnu.org>
parents: 18514
diff changeset
883 stack allocation routine for new process that the allocation
ec9c20bede0c (main) [__NetBSD__]: Round up new stack limit to page bdry.
Richard M. Stallman <rms@gnu.org>
parents: 18514
diff changeset
884 fails if stack limit is not on page boundary. So, round up the
ec9c20bede0c (main) [__NetBSD__]: Round up new stack limit to page bdry.
Richard M. Stallman <rms@gnu.org>
parents: 18514
diff changeset
885 new limit to page boundary. */
ec9c20bede0c (main) [__NetBSD__]: Round up new stack limit to page bdry.
Richard M. Stallman <rms@gnu.org>
parents: 18514
diff changeset
886 newlim = (newlim + getpagesize () - 1) / getpagesize () * getpagesize();
ec9c20bede0c (main) [__NetBSD__]: Round up new stack limit to page bdry.
Richard M. Stallman <rms@gnu.org>
parents: 18514
diff changeset
887 #endif
16968
7c030111c6bb (main): Don't extend stack limit too far.
Richard M. Stallman <rms@gnu.org>
parents: 16865
diff changeset
888 if (newlim > rlim.rlim_max)
19354
85ac99b8b5c8 (main): Update re_max_failures so regex.c won't overflow
Richard M. Stallman <rms@gnu.org>
parents: 19310
diff changeset
889 {
85ac99b8b5c8 (main): Update re_max_failures so regex.c won't overflow
Richard M. Stallman <rms@gnu.org>
parents: 19310
diff changeset
890 newlim = rlim.rlim_max;
20412
31468445f518 (main): Fix the stack-limit code to calculate
Karl Heuer <kwzh@gnu.org>
parents: 20037
diff changeset
891 /* Don't let regex.c overflow the stack we have. */
31468445f518 (main): Fix the stack-limit code to calculate
Karl Heuer <kwzh@gnu.org>
parents: 20037
diff changeset
892 re_max_failures = (newlim - 200000) / ratio;
19354
85ac99b8b5c8 (main): Update re_max_failures so regex.c won't overflow
Richard M. Stallman <rms@gnu.org>
parents: 19310
diff changeset
893 }
16968
7c030111c6bb (main): Don't extend stack limit too far.
Richard M. Stallman <rms@gnu.org>
parents: 16865
diff changeset
894 if (rlim.rlim_cur < newlim)
7c030111c6bb (main): Don't extend stack limit too far.
Richard M. Stallman <rms@gnu.org>
parents: 16865
diff changeset
895 rlim.rlim_cur = newlim;
7c030111c6bb (main): Don't extend stack limit too far.
Richard M. Stallman <rms@gnu.org>
parents: 16865
diff changeset
896
16046
53cf5adf7fd1 [HAVE_SETRLIMIT]: Include time.h and resource.h.
Richard M. Stallman <rms@gnu.org>
parents: 15952
diff changeset
897 setrlimit (RLIMIT_STACK, &rlim);
53cf5adf7fd1 [HAVE_SETRLIMIT]: Include time.h and resource.h.
Richard M. Stallman <rms@gnu.org>
parents: 15952
diff changeset
898 }
18758
231be0c398fd (main): Use setrlimit only if RLIMIT_STACK.
Richard M. Stallman <rms@gnu.org>
parents: 18683
diff changeset
899 #endif /* HAVE_SETRLIMIT and RLIMIT_STACK */
16046
53cf5adf7fd1 [HAVE_SETRLIMIT]: Include time.h and resource.h.
Richard M. Stallman <rms@gnu.org>
parents: 15952
diff changeset
900
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
901 /* Record (approximately) where the stack begins. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
902 stack_bottom = &stack_bottom_variable;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
903
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
904 clearerr (stdin);
3655
3e6cc11cfe9f Interact properly with shells lacking job control (sh, rc, es...)
Jim Blandy <jimb@redhat.com>
parents: 3454
diff changeset
905
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
906 #ifndef SYSTEM_MALLOC
23954
7a8677cdf2bd (main): Call memory_warnings and uninterrupt_malloc
Richard M. Stallman <rms@gnu.org>
parents: 23568
diff changeset
907 /* Arrange to get warning messages as memory fills up. */
7a8677cdf2bd (main): Call memory_warnings and uninterrupt_malloc
Richard M. Stallman <rms@gnu.org>
parents: 23568
diff changeset
908 memory_warnings (0, malloc_warning);
2439
b6c62e4abf59 Put interrupt input blocking in a separate file from xterm.h.
Jim Blandy <jimb@redhat.com>
parents: 2392
diff changeset
909
24364
2c148fbec289 (main): [!SYSTEM_MALLOC]: Call realloc and free as well
Andrew Innes <andrewi@gnu.org>
parents: 24348
diff changeset
910 /* Call malloc at least once, to run the initial __malloc_hook.
2c148fbec289 (main): [!SYSTEM_MALLOC]: Call realloc and free as well
Andrew Innes <andrewi@gnu.org>
parents: 24348
diff changeset
911 Also call realloc and free for consistency. */
2c148fbec289 (main): [!SYSTEM_MALLOC]: Call realloc and free as well
Andrew Innes <andrewi@gnu.org>
parents: 24348
diff changeset
912 free (realloc (malloc (4), 4));
23954
7a8677cdf2bd (main): Call memory_warnings and uninterrupt_malloc
Richard M. Stallman <rms@gnu.org>
parents: 23568
diff changeset
913
58895
4406d551c5c6 (main, Fdump_emacs): Don't touch malloc hooks if SYNC_INPUT.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 58832
diff changeset
914 # ifndef SYNC_INPUT
23954
7a8677cdf2bd (main): Call memory_warnings and uninterrupt_malloc
Richard M. Stallman <rms@gnu.org>
parents: 23568
diff changeset
915 /* Arrange to disable interrupt input inside malloc etc. */
7a8677cdf2bd (main): Call memory_warnings and uninterrupt_malloc
Richard M. Stallman <rms@gnu.org>
parents: 23568
diff changeset
916 uninterrupt_malloc ();
58895
4406d551c5c6 (main, Fdump_emacs): Don't touch malloc hooks if SYNC_INPUT.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 58832
diff changeset
917 # endif /* not SYNC_INPUT */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
918 #endif /* not SYSTEM_MALLOC */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
919
80571
2143d86d5d7c (main_thread): Conditionalize on
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 79758
diff changeset
920 #ifdef FORWARD_SIGNAL_TO_MAIN_THREAD
58986
59945307b86b * syssignal.h: Declare main_thread.
Jan Djärv <jan.h.d@swipnet.se>
parents: 58895
diff changeset
921 main_thread = pthread_self ();
80571
2143d86d5d7c (main_thread): Conditionalize on
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 79758
diff changeset
922 #endif /* FORWARD_SIGNAL_TO_MAIN_THREAD */
58986
59945307b86b * syssignal.h: Declare main_thread.
Jan Djärv <jan.h.d@swipnet.se>
parents: 58895
diff changeset
923
51125
9f5266505a66 (main) [WINDOWSNT]: Move it here.
Jason Rumney <jasonr@gnu.org>
parents: 51093
diff changeset
924 #if defined (MSDOS) || defined (WINDOWSNT)
5493
2a0ba54aefb5 (main) [MSDOS]: Call init_environment. Set file types to
Richard M. Stallman <rms@gnu.org>
parents: 5364
diff changeset
925 /* We do all file input/output as binary files. When we need to translate
2a0ba54aefb5 (main) [MSDOS]: Call init_environment. Set file types to
Richard M. Stallman <rms@gnu.org>
parents: 5364
diff changeset
926 newlines, we do that manually. */
2a0ba54aefb5 (main) [MSDOS]: Call init_environment. Set file types to
Richard M. Stallman <rms@gnu.org>
parents: 5364
diff changeset
927 _fmode = O_BINARY;
51125
9f5266505a66 (main) [WINDOWSNT]: Move it here.
Jason Rumney <jasonr@gnu.org>
parents: 51093
diff changeset
928 #endif /* MSDOS || WINDOWSNT */
14968
1351c75bc3d6 (main) [MSDOS]: Handle DJGPP version 2.
Richard M. Stallman <rms@gnu.org>
parents: 14922
diff changeset
929
51125
9f5266505a66 (main) [WINDOWSNT]: Move it here.
Jason Rumney <jasonr@gnu.org>
parents: 51093
diff changeset
930 #ifdef MSDOS
14968
1351c75bc3d6 (main) [MSDOS]: Handle DJGPP version 2.
Richard M. Stallman <rms@gnu.org>
parents: 14922
diff changeset
931 if (!isatty (fileno (stdin)))
1351c75bc3d6 (main) [MSDOS]: Handle DJGPP version 2.
Richard M. Stallman <rms@gnu.org>
parents: 14922
diff changeset
932 setmode (fileno (stdin), O_BINARY);
1351c75bc3d6 (main) [MSDOS]: Handle DJGPP version 2.
Richard M. Stallman <rms@gnu.org>
parents: 14922
diff changeset
933 if (!isatty (fileno (stdout)))
1351c75bc3d6 (main) [MSDOS]: Handle DJGPP version 2.
Richard M. Stallman <rms@gnu.org>
parents: 14922
diff changeset
934 {
1351c75bc3d6 (main) [MSDOS]: Handle DJGPP version 2.
Richard M. Stallman <rms@gnu.org>
parents: 14922
diff changeset
935 fflush (stdout);
1351c75bc3d6 (main) [MSDOS]: Handle DJGPP version 2.
Richard M. Stallman <rms@gnu.org>
parents: 14922
diff changeset
936 setmode (fileno (stdout), O_BINARY);
1351c75bc3d6 (main) [MSDOS]: Handle DJGPP version 2.
Richard M. Stallman <rms@gnu.org>
parents: 14922
diff changeset
937 }
5493
2a0ba54aefb5 (main) [MSDOS]: Call init_environment. Set file types to
Richard M. Stallman <rms@gnu.org>
parents: 5364
diff changeset
938 #endif /* MSDOS */
2a0ba54aefb5 (main) [MSDOS]: Call init_environment. Set file types to
Richard M. Stallman <rms@gnu.org>
parents: 5364
diff changeset
939
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
940 /* Skip initial setlocale if LC_ALL is "C", as it's not needed in that case.
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
941 The build procedure uses this while dumping, to ensure that the
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
942 dumped Emacs does not have its system locale tables initialized,
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
943 as that might cause screwups when the dumped Emacs starts up. */
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
944 {
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
945 char *lc_all = getenv ("LC_ALL");
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
946 do_initial_setlocale = ! lc_all || strcmp (lc_all, "C");
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
947 }
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
948
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
949 /* Set locale now, so that initial error messages are localized properly.
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
950 fixup_locale must wait until later, since it builds strings. */
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
951 if (do_initial_setlocale)
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
952 setlocale (LC_ALL, "");
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
953
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
954 inhibit_window_system = 0;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
955
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
956 /* Handle the -t switch, which specifies filename to use as terminal. */
22553
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
957 while (1)
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
958 {
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
959 char *term;
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
960 if (argmatch (argv, argc, "-t", "--terminal", 4, &term, &skip_args))
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
961 {
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
962 int result;
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
963 emacs_close (0);
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
964 emacs_close (1);
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
965 result = emacs_open (term, O_RDWR, 0);
22553
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
966 if (result < 0)
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
967 {
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
968 char *errstring = strerror (errno);
40418
625565cae9c9 Use argv[0] instead of emacs when -t was specified.
Pavel Janík <Pavel@Janik.cz>
parents: 40405
diff changeset
969 fprintf (stderr, "%s: %s: %s\n", argv[0], term, errstring);
22553
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
970 exit (1);
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
971 }
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
972 dup (0);
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
973 if (! isatty (0))
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
974 {
40418
625565cae9c9 Use argv[0] instead of emacs when -t was specified.
Pavel Janík <Pavel@Janik.cz>
parents: 40405
diff changeset
975 fprintf (stderr, "%s: %s: not a tty\n", argv[0], term);
22553
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
976 exit (1);
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
977 }
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
978 fprintf (stderr, "Using %s\n", term);
13409
280f00071040 [HAVE_NTGUI]: Declare Vwindow_system.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13393
diff changeset
979 #ifdef HAVE_WINDOW_SYSTEM
22553
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
980 inhibit_window_system = 1; /* -t => -nw */
9094
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
981 #endif
22553
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
982 }
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
983 else
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
984 break;
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
985 }
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
986
40572
6ae61fbe6134 (USAGE1): Show command line option --no-window-system instead of
Pavel Janík <Pavel@Janik.cz>
parents: 40535
diff changeset
987 /* Command line option --no-windows is deprecated and thus not mentioned
6ae61fbe6134 (USAGE1): Show command line option --no-window-system instead of
Pavel Janík <Pavel@Janik.cz>
parents: 40535
diff changeset
988 in the manual and usage informations. */
6ae61fbe6134 (USAGE1): Show command line option --no-window-system instead of
Pavel Janík <Pavel@Janik.cz>
parents: 40535
diff changeset
989 if (argmatch (argv, argc, "-nw", "--no-window-system", 6, NULL, &skip_args)
6ae61fbe6134 (USAGE1): Show command line option --no-window-system instead of
Pavel Janík <Pavel@Janik.cz>
parents: 40535
diff changeset
990 || argmatch (argv, argc, "-nw", "--no-windows", 6, NULL, &skip_args))
9094
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
991 inhibit_window_system = 1;
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
992
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
993 /* Handle the -batch switch, which means don't do interactive display. */
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
994 noninteractive = 0;
10111
add3c6d21876 (argmatch): Take argc as arg; don't go past end of argv.
Richard M. Stallman <rms@gnu.org>
parents: 10102
diff changeset
995 if (argmatch (argv, argc, "-batch", "--batch", 5, NULL, &skip_args))
59071
51027cf26edc (main): If batch mode, set Vundo_outer_limit to nil.
Richard M. Stallman <rms@gnu.org>
parents: 58986
diff changeset
996 {
51027cf26edc (main): If batch mode, set Vundo_outer_limit to nil.
Richard M. Stallman <rms@gnu.org>
parents: 58986
diff changeset
997 noninteractive = 1;
51027cf26edc (main): If batch mode, set Vundo_outer_limit to nil.
Richard M. Stallman <rms@gnu.org>
parents: 58986
diff changeset
998 Vundo_outer_limit = Qnil;
51027cf26edc (main): If batch mode, set Vundo_outer_limit to nil.
Richard M. Stallman <rms@gnu.org>
parents: 58986
diff changeset
999 }
47059
83efa005a987 (main): Handle --script.
Richard M. Stallman <rms@gnu.org>
parents: 47047
diff changeset
1000 if (argmatch (argv, argc, "-script", "--script", 3, &junk, &skip_args))
83efa005a987 (main): Handle --script.
Richard M. Stallman <rms@gnu.org>
parents: 47047
diff changeset
1001 {
83efa005a987 (main): Handle --script.
Richard M. Stallman <rms@gnu.org>
parents: 47047
diff changeset
1002 noninteractive = 1; /* Set batch mode. */
92892
dc8ef1d9d71d (main): Revert previous change.
Glenn Morris <rgm@gnu.org>
parents: 92792
diff changeset
1003 /* Convert --script to -scriptload, un-skip it, and sort again
64775
17ea5769514d (endif): Convert -script into -scriptload.
Richard M. Stallman <rms@gnu.org>
parents: 64770
diff changeset
1004 so that it will be handled in proper sequence. */
92792
eb36bc19579d (main, standard_args): Rename -scriptload to -internal-script.
Glenn Morris <rgm@gnu.org>
parents: 92251
diff changeset
1005 /* FIXME broken for --script=FILE - is that supposed to work? */
64775
17ea5769514d (endif): Convert -script into -scriptload.
Richard M. Stallman <rms@gnu.org>
parents: 64770
diff changeset
1006 argv[skip_args - 1] = "-scriptload";
47059
83efa005a987 (main): Handle --script.
Richard M. Stallman <rms@gnu.org>
parents: 47047
diff changeset
1007 skip_args -= 2;
83efa005a987 (main): Handle --script.
Richard M. Stallman <rms@gnu.org>
parents: 47047
diff changeset
1008 sort_args (argc, argv);
83efa005a987 (main): Handle --script.
Richard M. Stallman <rms@gnu.org>
parents: 47047
diff changeset
1009 }
9094
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
1010
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
1011 /* Handle the --help option, which gives a usage message. */
10111
add3c6d21876 (argmatch): Take argc as arg; don't go past end of argv.
Richard M. Stallman <rms@gnu.org>
parents: 10102
diff changeset
1012 if (argmatch (argv, argc, "-help", "--help", 3, NULL, &skip_args))
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1013 {
54116
c7d9113f8f82 (USAGE1): Split into two halves.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 54101
diff changeset
1014 printf (USAGE1, argv[0], USAGE2);
c7d9113f8f82 (USAGE1): Split into two halves.
Eli Zaretskii <eliz@is.elta.co.il>
parents: 54101
diff changeset
1015 printf (USAGE3);
107414
929a106309b7 Remove obsolete code in emacs.c that chooses a bug reporting address.
Glenn Morris <rgm@gnu.org>
parents: 106864
diff changeset
1016 printf (USAGE4);
9094
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
1017 exit (0);
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1018 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1019
99158
d1d986962044 * emacs.c (daemon_name): New variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 99148
diff changeset
1020 if (argmatch (argv, argc, "-daemon", "--daemon", 5, NULL, &skip_args)
d1d986962044 * emacs.c (daemon_name): New variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 99148
diff changeset
1021 || argmatch (argv, argc, "-daemon", "--daemon", 5, &dname_arg, &skip_args))
98290
90bc7e356363 * emacs.c (standard_args): Add --daemon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97644
diff changeset
1022 {
98293
5286cdd20519 (main): Place #ifdef.in the proper place.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98290
diff changeset
1023 #ifndef DOS_NT
99148
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1024 pid_t f;
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1025
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1026 /* Start as a daemon: fork a new child process which will run the
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1027 rest of the initialization code, then exit.
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1028
99178
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
1029 Detaching a daemon requires the following steps:
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
1030 - fork
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
1031 - setsid
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
1032 - exit the parent
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
1033 - close the tty file-descriptors
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
1034
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
1035 We only want to do the last 2 steps once the daemon is ready to
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
1036 serve requests, i.e. after loading .emacs (initialization).
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
1037 OTOH initialization may start subprocesses (e.g. ispell) and these
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
1038 should be run from the proper process (the one that will end up
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
1039 running as daemon) and with the proper "session id" in order for
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
1040 them to keep working after detaching, so fork and setsid need to be
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
1041 performed before initialization.
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
1042
99148
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1043 We want to avoid exiting before the server socket is ready, so
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1044 use a pipe for synchronization. The parent waits for the child
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1045 to close its end of the pipe (using `daemon-initialized')
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1046 before exiting. */
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1047 if (pipe (daemon_pipe) == -1)
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1048 {
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1049 fprintf (stderr, "Cannot pipe!\n");
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1050 exit (1);
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1051 }
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1052
101398
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1053 #ifndef NS_IMPL_COCOA
99148
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1054 f = fork ();
101406
6381c0548cdd fix comments in last change
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101399
diff changeset
1055 #else /* NS_IMPL_COCOA */
6381c0548cdd fix comments in last change
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101399
diff changeset
1056 /* Under Cocoa we must do fork+exec as CoreFoundation lib fails in
6381c0548cdd fix comments in last change
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101399
diff changeset
1057 forked process: http://developer.apple.com/ReleaseNotes/
6381c0548cdd fix comments in last change
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101399
diff changeset
1058 CoreFoundation/CoreFoundation.html)
101398
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1059 We mark being in the exec'd process by a daemon name argument of
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1060 form "--daemon=\nFD0,FD1\nNAME" where FD are the pipe file descriptors,
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1061 NAME is the original daemon name, if any. */
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1062 if (!dname_arg || !strchr (dname_arg, '\n'))
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1063 f = fork (); /* in orig */
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1064 else
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1065 f = 0; /* in exec'd */
101406
6381c0548cdd fix comments in last change
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101399
diff changeset
1066 #endif /* NS_IMPL_COCOA */
98290
90bc7e356363 * emacs.c (standard_args): Add --daemon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97644
diff changeset
1067 if (f > 0)
99148
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1068 {
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1069 int retval;
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1070 char buf[1];
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1071
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1072 /* Close unused writing end of the pipe. */
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1073 close (daemon_pipe[1]);
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1074
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1075 /* Just wait for the child to close its end of the pipe. */
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1076 do
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1077 {
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1078 retval = read (daemon_pipe[0], &buf, 1);
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1079 }
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1080 while (retval == -1 && errno == EINTR);
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1081
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1082 if (retval < 0)
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1083 {
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1084 fprintf (stderr, "Error reading status from child\n");
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1085 exit (1);
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1086 }
100485
fd10c7ef5447 * emacs.c (main): Print and error and exit when no data is read
Dan Nicolaescu <dann@ics.uci.edu>
parents: 100277
diff changeset
1087 else if (retval == 0)
fd10c7ef5447 * emacs.c (main): Print and error and exit when no data is read
Dan Nicolaescu <dann@ics.uci.edu>
parents: 100277
diff changeset
1088 {
fd10c7ef5447 * emacs.c (main): Print and error and exit when no data is read
Dan Nicolaescu <dann@ics.uci.edu>
parents: 100277
diff changeset
1089 fprintf (stderr, "Error: server did not start correctly\n");
fd10c7ef5447 * emacs.c (main): Print and error and exit when no data is read
Dan Nicolaescu <dann@ics.uci.edu>
parents: 100277
diff changeset
1090 exit (1);
fd10c7ef5447 * emacs.c (main): Print and error and exit when no data is read
Dan Nicolaescu <dann@ics.uci.edu>
parents: 100277
diff changeset
1091 }
99148
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1092
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1093 close (daemon_pipe[0]);
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1094 exit (0);
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1095 }
98290
90bc7e356363 * emacs.c (standard_args): Add --daemon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97644
diff changeset
1096 if (f < 0)
90bc7e356363 * emacs.c (standard_args): Add --daemon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97644
diff changeset
1097 {
90bc7e356363 * emacs.c (standard_args): Add --daemon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97644
diff changeset
1098 fprintf (stderr, "Cannot fork!\n");
98294
d6ab37532b9b * emacs.c (Fdaemonp): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents: 98293
diff changeset
1099 exit (1);
98290
90bc7e356363 * emacs.c (standard_args): Add --daemon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97644
diff changeset
1100 }
90bc7e356363 * emacs.c (standard_args): Add --daemon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97644
diff changeset
1101
101398
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1102 #ifdef NS_IMPL_COCOA
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1103 {
101406
6381c0548cdd fix comments in last change
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101399
diff changeset
1104 /* In orig process, forked as child, OR in exec'd. */
101398
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1105 if (!dname_arg || !strchr (dname_arg, '\n'))
101406
6381c0548cdd fix comments in last change
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101399
diff changeset
1106 { /* In orig, child: now exec w/special daemon name. */
101398
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1107 char fdStr[80];
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1108
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1109 if (dname_arg && strlen (dname_arg) > 70)
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1110 {
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1111 fprintf (stderr, "daemon: child name too long\n");
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1112 exit (1);
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1113 }
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1114
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1115 sprintf (fdStr, "--daemon=\n%d,%d\n%s", daemon_pipe[0],
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1116 daemon_pipe[1], dname_arg ? dname_arg : "");
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1117 argv[skip_args] = fdStr;
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1118
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1119 execv (argv[0], argv);
105094
7d1a89cec51a * emacs.c (main) [HAVE_NS]: fix error printf in daemon case.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 105081
diff changeset
1120 fprintf (stderr, "emacs daemon: exec failed: %d\n", errno);
101398
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1121 exit (1);
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1122 }
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1123
101406
6381c0548cdd fix comments in last change
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101399
diff changeset
1124 /* In exec'd: parse special dname into pipe and name info. */
101398
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1125 if (!dname_arg || !strchr (dname_arg, '\n')
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1126 || strlen (dname_arg) < 1 || strlen (dname_arg) > 70)
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1127 {
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1128 fprintf (stderr, "emacs daemon: daemon name absent or too long\n");
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1129 exit(1);
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1130 }
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1131 dname_arg2[0] = '\0';
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1132 sscanf (dname_arg, "\n%d,%d\n%s", &(daemon_pipe[0]), &(daemon_pipe[1]),
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1133 dname_arg2);
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1134 dname_arg = strlen (dname_arg2) ? dname_arg2 : NULL;
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1135 }
101406
6381c0548cdd fix comments in last change
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 101399
diff changeset
1136 #endif /* NS_IMPL_COCOA */
101398
6b87429f988f * emacs.c (main): Do fork+exec under --daemon in Cocoa.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 100951
diff changeset
1137
99158
d1d986962044 * emacs.c (daemon_name): New variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 99148
diff changeset
1138 if (dname_arg)
d1d986962044 * emacs.c (daemon_name): New variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 99148
diff changeset
1139 daemon_name = xstrdup (dname_arg);
99148
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1140 /* Close unused reading end of the pipe. */
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
1141 close (daemon_pipe[0]);
100277
8e5380a0e38c (main): Close daemon_pipe on exec.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 99318
diff changeset
1142 /* Make sure that the used end of the pipe is closed on exec, so
8e5380a0e38c (main): Close daemon_pipe on exec.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 99318
diff changeset
1143 that it is not accessible to programs started from .emacs. */
8e5380a0e38c (main): Close daemon_pipe on exec.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 99318
diff changeset
1144 fcntl (daemon_pipe[1], F_SETFD, FD_CLOEXEC);
8e5380a0e38c (main): Close daemon_pipe on exec.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 99318
diff changeset
1145
98290
90bc7e356363 * emacs.c (standard_args): Add --daemon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97644
diff changeset
1146 #ifdef HAVE_SETSID
90bc7e356363 * emacs.c (standard_args): Add --daemon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97644
diff changeset
1147 setsid();
90bc7e356363 * emacs.c (standard_args): Add --daemon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97644
diff changeset
1148 #endif
98293
5286cdd20519 (main): Place #ifdef.in the proper place.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98290
diff changeset
1149 #else /* DOS_NT */
5286cdd20519 (main): Place #ifdef.in the proper place.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98290
diff changeset
1150 fprintf (stderr, "This platform does not support the -daemon flag.\n");
5286cdd20519 (main): Place #ifdef.in the proper place.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98290
diff changeset
1151 exit (1);
5286cdd20519 (main): Place #ifdef.in the proper place.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98290
diff changeset
1152 #endif /* DOS_NT */
98290
90bc7e356363 * emacs.c (standard_args): Add --daemon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97644
diff changeset
1153 }
90bc7e356363 * emacs.c (standard_args): Add --daemon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97644
diff changeset
1154
7788
ddcb81020fa1 (main): Do the setpgrp after checking for -batch.
Richard M. Stallman <rms@gnu.org>
parents: 7716
diff changeset
1155 if (! noninteractive)
ddcb81020fa1 (main): Do the setpgrp after checking for -batch.
Richard M. Stallman <rms@gnu.org>
parents: 7716
diff changeset
1156 {
ddcb81020fa1 (main): Do the setpgrp after checking for -batch.
Richard M. Stallman <rms@gnu.org>
parents: 7716
diff changeset
1157 #if defined (USG5) && defined (INTERRUPT_INPUT)
ddcb81020fa1 (main): Do the setpgrp after checking for -batch.
Richard M. Stallman <rms@gnu.org>
parents: 7716
diff changeset
1158 setpgrp ();
ddcb81020fa1 (main): Do the setpgrp after checking for -batch.
Richard M. Stallman <rms@gnu.org>
parents: 7716
diff changeset
1159 #endif
78436
34b7a05ac98e (main) [HAVE_GTK_AND_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78260
diff changeset
1160 #if defined (HAVE_GTK_AND_PTHREAD) && !defined (SYSTEM_MALLOC) && !defined (DOUG_LEA_MALLOC)
34b7a05ac98e (main) [HAVE_GTK_AND_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78260
diff changeset
1161 {
109100
2bc9a0c04c87 Remove __P and P_ from .c and .m files and definition of P_
Jan D <jan.h.d@swipnet.se>
parents: 108888
diff changeset
1162 extern void malloc_enable_thread (void);
78436
34b7a05ac98e (main) [HAVE_GTK_AND_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78260
diff changeset
1163
34b7a05ac98e (main) [HAVE_GTK_AND_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78260
diff changeset
1164 malloc_enable_thread ();
34b7a05ac98e (main) [HAVE_GTK_AND_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78260
diff changeset
1165 }
34b7a05ac98e (main) [HAVE_GTK_AND_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78260
diff changeset
1166 #endif
7788
ddcb81020fa1 (main): Do the setpgrp after checking for -batch.
Richard M. Stallman <rms@gnu.org>
parents: 7716
diff changeset
1167 }
ddcb81020fa1 (main): Do the setpgrp after checking for -batch.
Richard M. Stallman <rms@gnu.org>
parents: 7716
diff changeset
1168
348
17ca8766781a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 284
diff changeset
1169 init_signals ();
17ca8766781a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 284
diff changeset
1170
14127
ebaba7107594 (main): In batch mode, don't handle SIGHUP if was ignored.
Karl Heuer <kwzh@gnu.org>
parents: 14072
diff changeset
1171 /* Don't catch SIGHUP if dumping. */
ebaba7107594 (main): In batch mode, don't handle SIGHUP if was ignored.
Karl Heuer <kwzh@gnu.org>
parents: 14072
diff changeset
1172 if (1
ebaba7107594 (main): In batch mode, don't handle SIGHUP if was ignored.
Karl Heuer <kwzh@gnu.org>
parents: 14072
diff changeset
1173 #ifndef CANNOT_DUMP
ebaba7107594 (main): In batch mode, don't handle SIGHUP if was ignored.
Karl Heuer <kwzh@gnu.org>
parents: 14072
diff changeset
1174 && initialized
ebaba7107594 (main): In batch mode, don't handle SIGHUP if was ignored.
Karl Heuer <kwzh@gnu.org>
parents: 14072
diff changeset
1175 #endif
ebaba7107594 (main): In batch mode, don't handle SIGHUP if was ignored.
Karl Heuer <kwzh@gnu.org>
parents: 14072
diff changeset
1176 )
ebaba7107594 (main): In batch mode, don't handle SIGHUP if was ignored.
Karl Heuer <kwzh@gnu.org>
parents: 14072
diff changeset
1177 {
15423
5b9fe08fa6eb (main): For SIGHUP, use sigblock and sigunblock,
Richard M. Stallman <rms@gnu.org>
parents: 15202
diff changeset
1178 sigblock (sigmask (SIGHUP));
14127
ebaba7107594 (main): In batch mode, don't handle SIGHUP if was ignored.
Karl Heuer <kwzh@gnu.org>
parents: 14072
diff changeset
1179 /* In --batch mode, don't catch SIGHUP if already ignored.
ebaba7107594 (main): In batch mode, don't handle SIGHUP if was ignored.
Karl Heuer <kwzh@gnu.org>
parents: 14072
diff changeset
1180 That makes nohup work. */
ebaba7107594 (main): In batch mode, don't handle SIGHUP if was ignored.
Karl Heuer <kwzh@gnu.org>
parents: 14072
diff changeset
1181 if (! noninteractive
ebaba7107594 (main): In batch mode, don't handle SIGHUP if was ignored.
Karl Heuer <kwzh@gnu.org>
parents: 14072
diff changeset
1182 || signal (SIGHUP, SIG_IGN) != SIG_IGN)
ebaba7107594 (main): In batch mode, don't handle SIGHUP if was ignored.
Karl Heuer <kwzh@gnu.org>
parents: 14072
diff changeset
1183 signal (SIGHUP, fatal_error_signal);
15423
5b9fe08fa6eb (main): For SIGHUP, use sigblock and sigunblock,
Richard M. Stallman <rms@gnu.org>
parents: 15202
diff changeset
1184 sigunblock (sigmask (SIGHUP));
14127
ebaba7107594 (main): In batch mode, don't handle SIGHUP if was ignored.
Karl Heuer <kwzh@gnu.org>
parents: 14072
diff changeset
1185 }
ebaba7107594 (main): In batch mode, don't handle SIGHUP if was ignored.
Karl Heuer <kwzh@gnu.org>
parents: 14072
diff changeset
1186
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1187 if (
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1188 #ifndef CANNOT_DUMP
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1189 ! noninteractive || initialized
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1190 #else
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1191 1
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1192 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1193 )
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1194 {
14127
ebaba7107594 (main): In batch mode, don't handle SIGHUP if was ignored.
Karl Heuer <kwzh@gnu.org>
parents: 14072
diff changeset
1195 /* Don't catch these signals in batch mode if dumping.
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1196 On some machines, this sets static data that would make
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1197 signal fail to work right when the dumped Emacs is run. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1198 signal (SIGQUIT, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1199 signal (SIGILL, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1200 signal (SIGTRAP, fatal_error_signal);
20489
35972a1f8f1b (Vsignal_USR1_hook, Vsignal_USR2_hook): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 20412
diff changeset
1201 #ifdef SIGUSR1
74747
53804f26b67e (main): Rename user signals to sigusr1 and sigusr2.
Kim F. Storm <storm@cua.dk>
parents: 74642
diff changeset
1202 add_user_signal (SIGUSR1, "sigusr1");
74408
4c44b86a628e (handle_USR1_signal, handle_USR2_signal): Replace by...
Kim F. Storm <storm@cua.dk>
parents: 73623
diff changeset
1203 #endif
20489
35972a1f8f1b (Vsignal_USR1_hook, Vsignal_USR2_hook): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 20412
diff changeset
1204 #ifdef SIGUSR2
74747
53804f26b67e (main): Rename user signals to sigusr1 and sigusr2.
Kim F. Storm <storm@cua.dk>
parents: 74642
diff changeset
1205 add_user_signal (SIGUSR2, "sigusr2");
20489
35972a1f8f1b (Vsignal_USR1_hook, Vsignal_USR2_hook): New variables.
Richard M. Stallman <rms@gnu.org>
parents: 20412
diff changeset
1206 #endif
10388
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1207 #ifdef SIGABRT
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1208 signal (SIGABRT, fatal_error_signal);
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1209 #endif
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1210 #ifdef SIGHWE
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1211 signal (SIGHWE, fatal_error_signal);
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1212 #endif
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1213 #ifdef SIGPRE
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1214 signal (SIGPRE, fatal_error_signal);
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1215 #endif
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1216 #ifdef SIGORE
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1217 signal (SIGORE, fatal_error_signal);
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1218 #endif
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1219 #ifdef SIGUME
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1220 signal (SIGUME, fatal_error_signal);
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1221 #endif
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1222 #ifdef SIGDLK
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1223 signal (SIGDLK, fatal_error_signal);
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1224 #endif
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1225 #ifdef SIGCPULIM
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1226 signal (SIGCPULIM, fatal_error_signal);
0ae5926bdee7 (main): Handle SIGABRT, SIGHWE, SIGPRE, SIGORE, SIGDLK,
Richard M. Stallman <rms@gnu.org>
parents: 10172
diff changeset
1227 #endif
2118
454228f1c526 * emacs.c (__do_global_ctors, __do_global_ctors_aux,
Jim Blandy <jimb@redhat.com>
parents: 1945
diff changeset
1228 #ifdef SIGIOT
454228f1c526 * emacs.c (__do_global_ctors, __do_global_ctors_aux,
Jim Blandy <jimb@redhat.com>
parents: 1945
diff changeset
1229 /* This is missing on some systems - OS/2, for example. */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1230 signal (SIGIOT, fatal_error_signal);
2118
454228f1c526 * emacs.c (__do_global_ctors, __do_global_ctors_aux,
Jim Blandy <jimb@redhat.com>
parents: 1945
diff changeset
1231 #endif
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1232 #ifdef SIGEMT
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1233 signal (SIGEMT, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1234 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1235 signal (SIGFPE, fatal_error_signal);
2913
409c1022bad5 Some changes from Michael K. Johnson for Linux.
Jim Blandy <jimb@redhat.com>
parents: 2674
diff changeset
1236 #ifdef SIGBUS
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1237 signal (SIGBUS, fatal_error_signal);
2913
409c1022bad5 Some changes from Michael K. Johnson for Linux.
Jim Blandy <jimb@redhat.com>
parents: 2674
diff changeset
1238 #endif
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1239 signal (SIGSEGV, fatal_error_signal);
2913
409c1022bad5 Some changes from Michael K. Johnson for Linux.
Jim Blandy <jimb@redhat.com>
parents: 2674
diff changeset
1240 #ifdef SIGSYS
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1241 signal (SIGSYS, fatal_error_signal);
2913
409c1022bad5 Some changes from Michael K. Johnson for Linux.
Jim Blandy <jimb@redhat.com>
parents: 2674
diff changeset
1242 #endif
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1243 signal (SIGTERM, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1244 #ifdef SIGXCPU
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1245 signal (SIGXCPU, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1246 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1247 #ifdef SIGXFSZ
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1248 signal (SIGXFSZ, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1249 #endif /* SIGXFSZ */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1250
5236
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
1251 #ifdef SIGDANGER
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
1252 /* This just means available memory is getting low. */
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
1253 signal (SIGDANGER, memory_warning_signal);
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
1254 #endif
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
1255
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1256 #ifdef AIX
5794
9d324422db4c (main) [AIX]: Don't handle signal 20, 21 or 22.
Richard M. Stallman <rms@gnu.org>
parents: 5763
diff changeset
1257 /* 20 is SIGCHLD, 21 is SIGTTIN, 22 is SIGTTOU. */
9d324422db4c (main) [AIX]: Don't handle signal 20, 21 or 22.
Richard M. Stallman <rms@gnu.org>
parents: 5763
diff changeset
1258 signal (SIGXCPU, fatal_error_signal);
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1259 signal (SIGIOINT, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1260 signal (SIGGRANT, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1261 signal (SIGRETRACT, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1262 signal (SIGSOUND, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1263 signal (SIGMSG, fatal_error_signal);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1264 #endif /* AIX */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1265 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1266
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1267 noninteractive1 = noninteractive;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1268
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
1269 /* Perform basic initializations (not merely interning symbols). */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1270
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1271 if (!initialized)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1272 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1273 init_alloc_once ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1274 init_obarray ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1275 init_eval_once ();
88373
9c612c1faba4 (main): Call init_charset_once, init_charset,
Kenichi Handa <handa@m17n.org>
parents: 42744
diff changeset
1276 init_character_once ();
17060
8c069ef6e1c4 (main): Call several initialization function introduced
Karl Heuer <kwzh@gnu.org>
parents: 16968
diff changeset
1277 init_charset_once ();
8c069ef6e1c4 (main): Call several initialization function introduced
Karl Heuer <kwzh@gnu.org>
parents: 16968
diff changeset
1278 init_coding_once ();
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1279 init_syntax_once (); /* Create standard syntax table. */
17060
8c069ef6e1c4 (main): Call several initialization function introduced
Karl Heuer <kwzh@gnu.org>
parents: 16968
diff changeset
1280 init_category_once (); /* Create standard category table. */
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
1281 /* Must be done before init_buffer. */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1282 init_casetab_once ();
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
1283 init_buffer_once (); /* Create buffer table and some buffers. */
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
1284 init_minibuf_once (); /* Create list of minibuffers. */
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
1285 /* Must precede init_window_once. */
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
1286
25010
16ced12bd3aa (main): Call init_fns.
Gerd Moellmann <gerd@gnu.org>
parents: 24900
diff changeset
1287 /* Call syms_of_xfaces before init_window_once because that
16ced12bd3aa (main): Call init_fns.
Gerd Moellmann <gerd@gnu.org>
parents: 24900
diff changeset
1288 function creates Vterminal_frame. Termcap frames now use
16ced12bd3aa (main): Call init_fns.
Gerd Moellmann <gerd@gnu.org>
parents: 24900
diff changeset
1289 faces, and the face implementation uses some symbols as
16ced12bd3aa (main): Call init_fns.
Gerd Moellmann <gerd@gnu.org>
parents: 24900
diff changeset
1290 face names. */
16ced12bd3aa (main): Call init_fns.
Gerd Moellmann <gerd@gnu.org>
parents: 24900
diff changeset
1291 syms_of_xfaces ();
83319
8f5787c83345 Change key-translation-map to be terminal-local.
Karoly Lorentey <lorentey@elte.hu>
parents: 83310
diff changeset
1292 /* XXX syms_of_keyboard uses some symbols in keymap.c. It would
8f5787c83345 Change key-translation-map to be terminal-local.
Karoly Lorentey <lorentey@elte.hu>
parents: 83310
diff changeset
1293 be better to arrange things not to have this dependency. */
8f5787c83345 Change key-translation-map to be terminal-local.
Karoly Lorentey <lorentey@elte.hu>
parents: 83310
diff changeset
1294 syms_of_keymap ();
29198
b3592c1e9ddb * emacs.c (main): Initialize keyboard syms before initializing
Ken Raeburn <raeburn@raeburn.org>
parents: 29150
diff changeset
1295 /* Call syms_of_keyboard before init_window_once because
b3592c1e9ddb * emacs.c (main): Initialize keyboard syms before initializing
Ken Raeburn <raeburn@raeburn.org>
parents: 29150
diff changeset
1296 keyboard sets up symbols that include some face names that
b3592c1e9ddb * emacs.c (main): Initialize keyboard syms before initializing
Ken Raeburn <raeburn@raeburn.org>
parents: 29150
diff changeset
1297 the X support will want to use. This can happen when
b3592c1e9ddb * emacs.c (main): Initialize keyboard syms before initializing
Ken Raeburn <raeburn@raeburn.org>
parents: 29150
diff changeset
1298 CANNOT_DUMP is defined. */
b3592c1e9ddb * emacs.c (main): Initialize keyboard syms before initializing
Ken Raeburn <raeburn@raeburn.org>
parents: 29150
diff changeset
1299 syms_of_keyboard ();
25010
16ced12bd3aa (main): Call init_fns.
Gerd Moellmann <gerd@gnu.org>
parents: 24900
diff changeset
1300
91046
35069180a991 Fix up multi-tty merge
Miles Bader <miles@gnu.org>
parents: 91041
diff changeset
1301 /* Called before syms_of_fileio, because it sets up Qerror_condition. */
35069180a991 Fix up multi-tty merge
Miles Bader <miles@gnu.org>
parents: 91041
diff changeset
1302 syms_of_data ();
35069180a991 Fix up multi-tty merge
Miles Bader <miles@gnu.org>
parents: 91041
diff changeset
1303 syms_of_fileio ();
35069180a991 Fix up multi-tty merge
Miles Bader <miles@gnu.org>
parents: 91041
diff changeset
1304 /* Before syms_of_coding to initialize Vgc_cons_threshold. */
35069180a991 Fix up multi-tty merge
Miles Bader <miles@gnu.org>
parents: 91041
diff changeset
1305 syms_of_alloc ();
35069180a991 Fix up multi-tty merge
Miles Bader <miles@gnu.org>
parents: 91041
diff changeset
1306 /* Before syms_of_coding because it initializes Qcharsetp. */
35069180a991 Fix up multi-tty merge
Miles Bader <miles@gnu.org>
parents: 91041
diff changeset
1307 syms_of_charset ();
35069180a991 Fix up multi-tty merge
Miles Bader <miles@gnu.org>
parents: 91041
diff changeset
1308 /* Before init_window_once, because it sets up the
35069180a991 Fix up multi-tty merge
Miles Bader <miles@gnu.org>
parents: 91041
diff changeset
1309 Vcoding_system_hash_table. */
35069180a991 Fix up multi-tty merge
Miles Bader <miles@gnu.org>
parents: 91041
diff changeset
1310 syms_of_coding (); /* This should be after syms_of_fileio. */
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents: 31829
diff changeset
1311
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
1312 init_window_once (); /* Init the window system. */
53882
94e08e9831b0 (main) [HAVE_WINDOW_SYSTEM]: Call init_fringe_once,
Kim F. Storm <storm@cua.dk>
parents: 53072
diff changeset
1313 #ifdef HAVE_WINDOW_SYSTEM
94e08e9831b0 (main) [HAVE_WINDOW_SYSTEM]: Call init_fringe_once,
Kim F. Storm <storm@cua.dk>
parents: 53072
diff changeset
1314 init_fringe_once (); /* Swap bitmaps if necessary. */
94e08e9831b0 (main) [HAVE_WINDOW_SYSTEM]: Call init_fringe_once,
Kim F. Storm <storm@cua.dk>
parents: 53072
diff changeset
1315 #endif /* HAVE_WINDOW_SYSTEM */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1316 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1317
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1318 init_alloc ();
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
1319
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
1320 if (do_initial_setlocale)
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
1321 {
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
1322 fixup_locale ();
26526
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
1323 Vsystem_messages_locale = Vprevious_system_messages_locale;
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
1324 Vsystem_time_locale = Vprevious_system_time_locale;
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
1325 }
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
1326
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1327 init_eval ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1328 init_data ();
24464
930074eb767f (main) [CLASH_DETECTION]: Call init_filelock.
Karl Heuer <kwzh@gnu.org>
parents: 24418
diff changeset
1329 #ifdef CLASH_DETECTION
39673
6eb33bfd9de7 *** empty log message ***
Pavel Janík <Pavel@Janik.cz>
parents: 39576
diff changeset
1330 init_filelock ();
24464
930074eb767f (main) [CLASH_DETECTION]: Call init_filelock.
Karl Heuer <kwzh@gnu.org>
parents: 24418
diff changeset
1331 #endif
27429
1bf632297f7d (main): Call init_atimer.
Gerd Moellmann <gerd@gnu.org>
parents: 26854
diff changeset
1332 init_atimer ();
10032
f689803caa92 Added code for automatically saving and restoring the match data
Francesco Potortì <pot@gnu.org>
parents: 10029
diff changeset
1333 running_asynch_code = 0;
1917
2ed00cbd9e53 * callproc.c (init_callproc): Move the initialization of
Jim Blandy <jimb@redhat.com>
parents: 1821
diff changeset
1334
21722
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1335 /* Handle --unibyte and the EMACS_UNIBYTE envvar,
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1336 but not while dumping. */
44101
d2a818b7c9ca (main): Handle --unibyte, --multibyte, and --no-loadup
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 44092
diff changeset
1337 if (1)
21722
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1338 {
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1339 int inhibit_unibyte = 0;
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1340
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1341 /* --multibyte overrides EMACS_UNIBYTE. */
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1342 if (argmatch (argv, argc, "-no-unibyte", "--no-unibyte", 4, NULL, &skip_args)
44101
d2a818b7c9ca (main): Handle --unibyte, --multibyte, and --no-loadup
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 44092
diff changeset
1343 || argmatch (argv, argc, "-multibyte", "--multibyte", 4, NULL, &skip_args)
d2a818b7c9ca (main): Handle --unibyte, --multibyte, and --no-loadup
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 44092
diff changeset
1344 /* Ignore EMACS_UNIBYTE before dumping. */
d2a818b7c9ca (main): Handle --unibyte, --multibyte, and --no-loadup
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 44092
diff changeset
1345 || (!initialized && noninteractive))
21722
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1346 inhibit_unibyte = 1;
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1347
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1348 /* --unibyte requests that we set up to do everything with single-byte
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1349 buffers and strings. We need to handle this before calling
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1350 init_lread, init_editfns and other places that generate Lisp strings
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1351 from text in the environment. */
24168
8b9782bae564 Comment about unibyte.
Dave Love <fx@gnu.org>
parents: 23979
diff changeset
1352 /* Actually this shouldn't be needed as of 20.4 in a generally
8b9782bae564 Comment about unibyte.
Dave Love <fx@gnu.org>
parents: 23979
diff changeset
1353 unibyte environment. As handa says, environment values
8b9782bae564 Comment about unibyte.
Dave Love <fx@gnu.org>
parents: 23979
diff changeset
1354 aren't now decoded; also existing buffers are now made
8b9782bae564 Comment about unibyte.
Dave Love <fx@gnu.org>
parents: 23979
diff changeset
1355 unibyte during startup if .emacs sets unibyte. Tested with
8b9782bae564 Comment about unibyte.
Dave Love <fx@gnu.org>
parents: 23979
diff changeset
1356 8-bit data in environment variables and /etc/passwd, setting
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
1357 unibyte and Latin-1 in .emacs. -- Dave Love */
21722
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1358 if (argmatch (argv, argc, "-unibyte", "--unibyte", 4, NULL, &skip_args)
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1359 || argmatch (argv, argc, "-no-multibyte", "--no-multibyte", 4, NULL, &skip_args)
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1360 || (getenv ("EMACS_UNIBYTE") && !inhibit_unibyte))
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1361 {
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1362 Lisp_Object old_log_max;
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1363 Lisp_Object symbol, tail;
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1364
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105872
diff changeset
1365 symbol = intern_c_string ("enable-multibyte-characters");
104698
8d9497f0afc1 * NEWS: Declare unibyte sessions obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 104622
diff changeset
1366 Fset_default (symbol, Qnil);
21722
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1367
22323
4c3c4ae02b77 (main): Test `initialized' before clearing *Messages*.
Karl Heuer <kwzh@gnu.org>
parents: 21962
diff changeset
1368 if (initialized)
4c3c4ae02b77 (main): Test `initialized' before clearing *Messages*.
Karl Heuer <kwzh@gnu.org>
parents: 21962
diff changeset
1369 {
4c3c4ae02b77 (main): Test `initialized' before clearing *Messages*.
Karl Heuer <kwzh@gnu.org>
parents: 21962
diff changeset
1370 /* Erase pre-dump messages in *Messages* now so no abort. */
4c3c4ae02b77 (main): Test `initialized' before clearing *Messages*.
Karl Heuer <kwzh@gnu.org>
parents: 21962
diff changeset
1371 old_log_max = Vmessage_log_max;
4c3c4ae02b77 (main): Test `initialized' before clearing *Messages*.
Karl Heuer <kwzh@gnu.org>
parents: 21962
diff changeset
1372 XSETFASTINT (Vmessage_log_max, 0);
4c3c4ae02b77 (main): Test `initialized' before clearing *Messages*.
Karl Heuer <kwzh@gnu.org>
parents: 21962
diff changeset
1373 message_dolog ("", 0, 1, 0);
4c3c4ae02b77 (main): Test `initialized' before clearing *Messages*.
Karl Heuer <kwzh@gnu.org>
parents: 21962
diff changeset
1374 Vmessage_log_max = old_log_max;
4c3c4ae02b77 (main): Test `initialized' before clearing *Messages*.
Karl Heuer <kwzh@gnu.org>
parents: 21962
diff changeset
1375 }
21722
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1376
21840
89d03805f45a (main): Use Vbuffer_alist instead of Fbuffer_list.
Andreas Schwab <schwab@suse.de>
parents: 21832
diff changeset
1377 for (tail = Vbuffer_alist; CONSP (tail);
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26131
diff changeset
1378 tail = XCDR (tail))
21722
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1379 {
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1380 Lisp_Object buffer;
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1381
26164
d39ec0a27081 more XCAR/XCDR/XFLOAT_DATA uses, to help isolete lisp engine
Ken Raeburn <raeburn@raeburn.org>
parents: 26131
diff changeset
1382 buffer = Fcdr (XCAR (tail));
89483
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89003
diff changeset
1383 /* Make a multibyte buffer unibyte. */
89003
313a80e39c2a (main): In the case of --unibyte, instead of aborting on
Kenichi Handa <handa@m17n.org>
parents: 88373
diff changeset
1384 if (BUF_Z_BYTE (XBUFFER (buffer)) > BUF_Z (XBUFFER (buffer)))
313a80e39c2a (main): In the case of --unibyte, instead of aborting on
Kenichi Handa <handa@m17n.org>
parents: 88373
diff changeset
1385 {
313a80e39c2a (main): In the case of --unibyte, instead of aborting on
Kenichi Handa <handa@m17n.org>
parents: 88373
diff changeset
1386 struct buffer *current = current_buffer;
313a80e39c2a (main): In the case of --unibyte, instead of aborting on
Kenichi Handa <handa@m17n.org>
parents: 88373
diff changeset
1387
313a80e39c2a (main): In the case of --unibyte, instead of aborting on
Kenichi Handa <handa@m17n.org>
parents: 88373
diff changeset
1388 set_buffer_temp (XBUFFER (buffer));
89483
2f877ed80fa6 *** empty log message ***
Kenichi Handa <handa@m17n.org>
parents: 88123 89003
diff changeset
1389 Fset_buffer_multibyte (Qnil);
89003
313a80e39c2a (main): In the case of --unibyte, instead of aborting on
Kenichi Handa <handa@m17n.org>
parents: 88373
diff changeset
1390 set_buffer_temp (current);
313a80e39c2a (main): In the case of --unibyte, instead of aborting on
Kenichi Handa <handa@m17n.org>
parents: 88373
diff changeset
1391 }
21722
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1392 }
104698
8d9497f0afc1 * NEWS: Declare unibyte sessions obsolete.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 104622
diff changeset
1393 message ("Warning: unibyte sessions are obsolete and will disappear");
21722
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1394 }
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1395 }
5b26268ee997 Include buffer.h
Richard M. Stallman <rms@gnu.org>
parents: 21637
diff changeset
1396
22553
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1397 no_loadup
28407
f15029804aba * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
Ken Raeburn <raeburn@raeburn.org>
parents: 27981
diff changeset
1398 = argmatch (argv, argc, "-nl", "--no-loadup", 6, NULL, &skip_args);
22553
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1399
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1400 #ifdef HAVE_NS
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1401 ns_alloc_autorelease_pool();
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1402 if (!noninteractive)
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1403 {
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1404 #ifdef NS_IMPL_COCOA
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1405 if (skip_args < argc)
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1406 {
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1407 if (!strncmp(argv[skip_args], "-psn", 4))
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1408 {
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1409 skip_args += 1;
97286
fb10dad2c427 set working dir to /Users/arobert under NS when psn argument given
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 97266
diff changeset
1410 chdir (getenv ("HOME"));
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1411 }
97287
f152a8f9c82f emacs.c (main): Under NS, set working dir to HOME when get a 'psn' argument.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 97286
diff changeset
1412 else if (skip_args+1 < argc && !strncmp(argv[skip_args+1], "-psn", 4))
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1413 {
97287
f152a8f9c82f emacs.c (main): Under NS, set working dir to HOME when get a 'psn' argument.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 97286
diff changeset
1414 skip_args += 2;
97286
fb10dad2c427 set working dir to /Users/arobert under NS when psn argument given
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 97266
diff changeset
1415 chdir (getenv ("HOME"));
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1416 }
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1417 }
105081
28ad66a103d9 (inhibit_x_resources): Update doc string for NS. (main) [HAVE_NS]: Don't process --no-init-file option. Remove legacy code for -NXHost.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 105069
diff changeset
1418 #endif /* COCOA */
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1419 }
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1420 #endif /* HAVE_NS */
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1421
22553
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1422 #ifdef HAVE_X_WINDOWS
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1423 /* Stupid kludge to catch command-line display spec. We can't
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1424 handle this argument entirely in window system dependent code
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1425 because we don't even know which window system dependent code
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1426 to run until we've recognized this argument. */
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1427 {
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1428 char *displayname = 0;
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1429 int count_before = skip_args;
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1430
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1431 /* Skip any number of -d options, but only use the last one. */
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1432 while (1)
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1433 {
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1434 int count_before_this = skip_args;
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1435
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1436 if (argmatch (argv, argc, "-d", "--display", 3, &displayname, &skip_args))
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1437 display_arg = 1;
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1438 else if (argmatch (argv, argc, "-display", 0, 3, &displayname, &skip_args))
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1439 display_arg = 1;
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1440 else
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1441 break;
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1442
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1443 count_before = count_before_this;
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1444 }
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1445
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1446 /* If we have the form --display=NAME,
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1447 convert it into -d name.
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1448 This requires inserting a new element into argv. */
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1449 if (displayname != 0 && skip_args - count_before == 1)
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1450 {
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1451 char **new = (char **) xmalloc (sizeof (char *) * (argc + 2));
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1452 int j;
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1453
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1454 for (j = 0; j < count_before + 1; j++)
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1455 new[j] = argv[j];
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1456 new[count_before + 1] = "-d";
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1457 new[count_before + 2] = displayname;
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1458 for (j = count_before + 2; j <argc; j++)
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1459 new[j + 1] = argv[j];
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1460 argv = new;
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1461 argc++;
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1462 }
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1463 /* Change --display to -d, when its arg is separate. */
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1464 else if (displayname != 0 && skip_args > count_before
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1465 && argv[count_before + 1][1] == '-')
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1466 argv[count_before + 1] = "-d";
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1467
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1468 /* Don't actually discard this arg. */
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1469 skip_args = count_before;
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1470 }
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1471 #endif
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1472
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1473 /* argmatch must not be used after here,
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1474 except when bulding temacs
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1475 because the -d argument has not been skipped in skip_args. */
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1476
5493
2a0ba54aefb5 (main) [MSDOS]: Call init_environment. Set file types to
Richard M. Stallman <rms@gnu.org>
parents: 5364
diff changeset
1477 #ifdef MSDOS
2a0ba54aefb5 (main) [MSDOS]: Call init_environment. Set file types to
Richard M. Stallman <rms@gnu.org>
parents: 5364
diff changeset
1478 /* Call early 'cause init_environment needs it. */
2a0ba54aefb5 (main) [MSDOS]: Call init_environment. Set file types to
Richard M. Stallman <rms@gnu.org>
parents: 5364
diff changeset
1479 init_dosfns ();
2a0ba54aefb5 (main) [MSDOS]: Call init_environment. Set file types to
Richard M. Stallman <rms@gnu.org>
parents: 5364
diff changeset
1480 /* Set defaults for several environment variables. */
14968
1351c75bc3d6 (main) [MSDOS]: Handle DJGPP version 2.
Richard M. Stallman <rms@gnu.org>
parents: 14922
diff changeset
1481 if (initialized)
1351c75bc3d6 (main) [MSDOS]: Handle DJGPP version 2.
Richard M. Stallman <rms@gnu.org>
parents: 14922
diff changeset
1482 init_environment (argc, argv, skip_args);
1351c75bc3d6 (main) [MSDOS]: Handle DJGPP version 2.
Richard M. Stallman <rms@gnu.org>
parents: 14922
diff changeset
1483 else
15012
2dabff0bce33 (main) [MSDOS]: Always call tzset, not init__gettimeofday.
Richard M. Stallman <rms@gnu.org>
parents: 14993
diff changeset
1484 tzset ();
14968
1351c75bc3d6 (main) [MSDOS]: Handle DJGPP version 2.
Richard M. Stallman <rms@gnu.org>
parents: 14922
diff changeset
1485 #endif /* MSDOS */
5493
2a0ba54aefb5 (main) [MSDOS]: Call init_environment. Set file types to
Richard M. Stallman <rms@gnu.org>
parents: 5364
diff changeset
1486
13409
280f00071040 [HAVE_NTGUI]: Declare Vwindow_system.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13393
diff changeset
1487 #ifdef WINDOWSNT
48888
f0df5f687c15 Revisited my earlier fix for the following entry in etc/PROBLEMS: 'Emacs built on Windows 9x/ME crashes at startup on Windows XP, or Emacs builtpart of on XP crashes at startup on Windows 9x/ME.' Fixed several Windows API errors detected by BoundsChecker
Ben Key <bkey1@tampabay.rr.com>
parents: 48319
diff changeset
1488 globals_of_w32 ();
13409
280f00071040 [HAVE_NTGUI]: Declare Vwindow_system.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13393
diff changeset
1489 /* Initialize environment from registry settings. */
24228
6ed588e4dd94 (main): Pass argv to init_environment.
Andrew Innes <andrewi@gnu.org>
parents: 24197
diff changeset
1490 init_environment (argv);
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
1491 init_ntproc (); /* must precede init_editfns. */
13409
280f00071040 [HAVE_NTGUI]: Declare Vwindow_system.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13393
diff changeset
1492 #endif
280f00071040 [HAVE_NTGUI]: Declare Vwindow_system.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13393
diff changeset
1493
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1494 #ifdef HAVE_NS
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1495 #ifndef CANNOT_DUMP
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1496 if (initialized)
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1497 #endif
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1498 ns_init_paths ();
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1499 #endif
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1500
108603
135d8ad190d8 * emacs.c (main): Initialize initial-environment and process-environment
Ken Raeburn <raeburn@raeburn.org>
parents: 108601
diff changeset
1501 /* Initialize and GC-protect Vinitial_environment and
135d8ad190d8 * emacs.c (main): Initialize initial-environment and process-environment
Ken Raeburn <raeburn@raeburn.org>
parents: 108601
diff changeset
1502 Vprocess_environment before set_initial_environment fills them
135d8ad190d8 * emacs.c (main): Initialize initial-environment and process-environment
Ken Raeburn <raeburn@raeburn.org>
parents: 108601
diff changeset
1503 in. */
135d8ad190d8 * emacs.c (main): Initialize initial-environment and process-environment
Ken Raeburn <raeburn@raeburn.org>
parents: 108601
diff changeset
1504 if (!initialized)
135d8ad190d8 * emacs.c (main): Initialize initial-environment and process-environment
Ken Raeburn <raeburn@raeburn.org>
parents: 108601
diff changeset
1505 syms_of_callproc ();
1917
2ed00cbd9e53 * callproc.c (init_callproc): Move the initialization of
Jim Blandy <jimb@redhat.com>
parents: 1821
diff changeset
1506 /* egetenv is a pretty low-level facility, which may get called in
2ed00cbd9e53 * callproc.c (init_callproc): Move the initialization of
Jim Blandy <jimb@redhat.com>
parents: 1821
diff changeset
1507 many circumstances; it seems flimsy to put off initializing it
2ed00cbd9e53 * callproc.c (init_callproc): Move the initialization of
Jim Blandy <jimb@redhat.com>
parents: 1821
diff changeset
1508 until calling init_callproc. */
83529
0d9e16eab053 Rework environment variable support. (Reported by Kalle Olavi Niemitalo and Noah Friedman.)
Karoly Lorentey <lorentey@elte.hu>
parents: 83453
diff changeset
1509 set_initial_environment ();
5364
99b5ca69dea7 (main) [AIX]: Call putenv.
Richard M. Stallman <rms@gnu.org>
parents: 5236
diff changeset
1510 /* AIX crashes are reported in system versions 3.2.3 and 3.2.4
83425
c82829d08b89 Fix semantics of let-binding `process-environment'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
1511 if this is not done. Do it after set_global_environment so that we
c82829d08b89 Fix semantics of let-binding `process-environment'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83420
diff changeset
1512 don't pollute Vglobal_environment. */
26669
862ea38e59f1 (main): Set LANG=C iff AX3_2 defined.
Dave Love <fx@gnu.org>
parents: 26631
diff changeset
1513 /* Setting LANG here will defeat the startup locale processing... */
96303
ddedcecb18ef * unexnext.c:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 95655
diff changeset
1514 #ifdef AIX
5364
99b5ca69dea7 (main) [AIX]: Call putenv.
Richard M. Stallman <rms@gnu.org>
parents: 5236
diff changeset
1515 putenv ("LANG=C");
99b5ca69dea7 (main) [AIX]: Call putenv.
Richard M. Stallman <rms@gnu.org>
parents: 5236
diff changeset
1516 #endif
1917
2ed00cbd9e53 * callproc.c (init_callproc): Move the initialization of
Jim Blandy <jimb@redhat.com>
parents: 1821
diff changeset
1517
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
1518 init_buffer (); /* Init default directory of main buffer. */
4484
c589c71324dd (Vinvocation_directory): New var.
Richard M. Stallman <rms@gnu.org>
parents: 4303
diff changeset
1519
5155
3fcc21b4f083 (main): Call init_callproc and init_callproc_1.
Richard M. Stallman <rms@gnu.org>
parents: 4957
diff changeset
1520 init_callproc_1 (); /* Must precede init_cmdargs and init_sys_modes. */
4484
c589c71324dd (Vinvocation_directory): New var.
Richard M. Stallman <rms@gnu.org>
parents: 4303
diff changeset
1521 init_cmdargs (argc, argv, skip_args); /* Must precede init_lread. */
16488
65c729d461c3 (main): Clear out *Messages* before init_callproc.
Richard M. Stallman <rms@gnu.org>
parents: 16386
diff changeset
1522
65c729d461c3 (main): Clear out *Messages* before init_callproc.
Richard M. Stallman <rms@gnu.org>
parents: 16386
diff changeset
1523 if (initialized)
65c729d461c3 (main): Clear out *Messages* before init_callproc.
Richard M. Stallman <rms@gnu.org>
parents: 16386
diff changeset
1524 {
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
1525 /* Erase any pre-dump messages in the message log, to avoid confusion. */
16488
65c729d461c3 (main): Clear out *Messages* before init_callproc.
Richard M. Stallman <rms@gnu.org>
parents: 16386
diff changeset
1526 Lisp_Object old_log_max;
65c729d461c3 (main): Clear out *Messages* before init_callproc.
Richard M. Stallman <rms@gnu.org>
parents: 16386
diff changeset
1527 old_log_max = Vmessage_log_max;
65c729d461c3 (main): Clear out *Messages* before init_callproc.
Richard M. Stallman <rms@gnu.org>
parents: 16386
diff changeset
1528 XSETFASTINT (Vmessage_log_max, 0);
20620
a3cb242e8349 (main): Pass new arg to message_dolog.
Richard M. Stallman <rms@gnu.org>
parents: 20527
diff changeset
1529 message_dolog ("", 0, 1, 0);
16488
65c729d461c3 (main): Clear out *Messages* before init_callproc.
Richard M. Stallman <rms@gnu.org>
parents: 16386
diff changeset
1530 Vmessage_log_max = old_log_max;
65c729d461c3 (main): Clear out *Messages* before init_callproc.
Richard M. Stallman <rms@gnu.org>
parents: 16386
diff changeset
1531 }
65c729d461c3 (main): Clear out *Messages* before init_callproc.
Richard M. Stallman <rms@gnu.org>
parents: 16386
diff changeset
1532
5155
3fcc21b4f083 (main): Call init_callproc and init_callproc_1.
Richard M. Stallman <rms@gnu.org>
parents: 4957
diff changeset
1533 init_callproc (); /* Must follow init_cmdargs but not init_sys_modes. */
348
17ca8766781a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 284
diff changeset
1534 init_lread ();
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1535
21962
c452f82d8d45 (main): Call the syms_of_... and keys_of_... functions
Richard M. Stallman <rms@gnu.org>
parents: 21840
diff changeset
1536 /* Intern the names of all standard functions and variables;
c452f82d8d45 (main): Call the syms_of_... and keys_of_... functions
Richard M. Stallman <rms@gnu.org>
parents: 21840
diff changeset
1537 define standard keys. */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1538
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1539 if (!initialized)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1540 {
104312
c8e168f901e7 (main): Don't call syms_of_data twice.
Ken Raeburn <raeburn@raeburn.org>
parents: 103665
diff changeset
1541 /* The basic levels of Lisp must come first. Note that
c8e168f901e7 (main): Don't call syms_of_data twice.
Ken Raeburn <raeburn@raeburn.org>
parents: 103665
diff changeset
1542 syms_of_data and some others have already been called. */
88373
9c612c1faba4 (main): Call init_charset_once, init_charset,
Kenichi Handa <handa@m17n.org>
parents: 42744
diff changeset
1543 syms_of_chartab ();
348
17ca8766781a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 284
diff changeset
1544 syms_of_lread ();
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1545 syms_of_print ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1546 syms_of_eval ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1547 syms_of_fns ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1548 syms_of_floatfns ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1549
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1550 syms_of_buffer ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1551 syms_of_bytecode ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1552 syms_of_callint ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1553 syms_of_casefiddle ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1554 syms_of_casetab ();
17060
8c069ef6e1c4 (main): Call several initialization function introduced
Karl Heuer <kwzh@gnu.org>
parents: 16968
diff changeset
1555 syms_of_category ();
8c069ef6e1c4 (main): Call several initialization function introduced
Karl Heuer <kwzh@gnu.org>
parents: 16968
diff changeset
1556 syms_of_ccl ();
88373
9c612c1faba4 (main): Call init_charset_once, init_charset,
Kenichi Handa <handa@m17n.org>
parents: 42744
diff changeset
1557 syms_of_character ();
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1558 syms_of_cmds ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1559 syms_of_dired ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1560 syms_of_display ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1561 syms_of_doc ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1562 syms_of_editfns ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1563 syms_of_emacs ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1564 #ifdef CLASH_DETECTION
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1565 syms_of_filelock ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1566 #endif /* CLASH_DETECTION */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1567 syms_of_indent ();
16548
12915fed5a02 (main): Call syms_of_insdel.
Richard M. Stallman <rms@gnu.org>
parents: 16488
diff changeset
1568 syms_of_insdel ();
83319
8f5787c83345 Change key-translation-map to be terminal-local.
Karoly Lorentey <lorentey@elte.hu>
parents: 83310
diff changeset
1569 /* syms_of_keymap (); */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1570 syms_of_macros ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1571 syms_of_marker ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1572 syms_of_minibuf ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1573 syms_of_process ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1574 syms_of_search ();
33886
ff4ddf873081 * src/macterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
Andrew Choi <akochoi@shaw.ca>
parents: 33213
diff changeset
1575 syms_of_frame ();
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1576 syms_of_syntax ();
83420
521d3f18b3d1 Reimplement terminal parameters in C; clean up term.c, create terminal.c.
Karoly Lorentey <lorentey@elte.hu>
parents: 83405
diff changeset
1577 syms_of_terminal ();
6751
e4299463079d (main): Call syms_of_term.
Karl Heuer <kwzh@gnu.org>
parents: 6467
diff changeset
1578 syms_of_term ();
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1579 syms_of_undo ();
25010
16ced12bd3aa (main): Call init_fns.
Gerd Moellmann <gerd@gnu.org>
parents: 24900
diff changeset
1580 #ifdef HAVE_SOUND
16ced12bd3aa (main): Call init_fns.
Gerd Moellmann <gerd@gnu.org>
parents: 24900
diff changeset
1581 syms_of_sound ();
16ced12bd3aa (main): Call init_fns.
Gerd Moellmann <gerd@gnu.org>
parents: 24900
diff changeset
1582 #endif
1284
4742a5797146 Password:
Joseph Arceneaux <jla@gnu.org>
parents: 1202
diff changeset
1583 syms_of_textprop ();
26854
c8f8089c339b (main): Call syms_of_composite.
Kenichi Handa <handa@m17n.org>
parents: 26669
diff changeset
1584 syms_of_composite ();
15202
0a9e62f4f10b (main) [WINDOWSNT]: Call syms_of_ntproc.
Richard M. Stallman <rms@gnu.org>
parents: 15089
diff changeset
1585 #ifdef WINDOWSNT
0a9e62f4f10b (main) [WINDOWSNT]: Call syms_of_ntproc.
Richard M. Stallman <rms@gnu.org>
parents: 15089
diff changeset
1586 syms_of_ntproc ();
0a9e62f4f10b (main) [WINDOWSNT]: Call syms_of_ntproc.
Richard M. Stallman <rms@gnu.org>
parents: 15089
diff changeset
1587 #endif /* WINDOWSNT */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1588 syms_of_window ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1589 syms_of_xdisp ();
95124
22a7c59495c7 (main): Call syms_of_font unconditionally.
Kenichi Handa <handa@m17n.org>
parents: 94996
diff changeset
1590 syms_of_font ();
53882
94e08e9831b0 (main) [HAVE_WINDOW_SYSTEM]: Call init_fringe_once,
Kim F. Storm <storm@cua.dk>
parents: 53072
diff changeset
1591 #ifdef HAVE_WINDOW_SYSTEM
94e08e9831b0 (main) [HAVE_WINDOW_SYSTEM]: Call init_fringe_once,
Kim F. Storm <storm@cua.dk>
parents: 53072
diff changeset
1592 syms_of_fringe ();
54342
a517c0320eba Image consolidation:
Kim F. Storm <storm@cua.dk>
parents: 54150
diff changeset
1593 syms_of_image ();
53882
94e08e9831b0 (main) [HAVE_WINDOW_SYSTEM]: Call init_fringe_once,
Kim F. Storm <storm@cua.dk>
parents: 53072
diff changeset
1594 #endif /* HAVE_WINDOW_SYSTEM */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1595 #ifdef HAVE_X_WINDOWS
375
7665331b1d5d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 372
diff changeset
1596 syms_of_xterm ();
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1597 syms_of_xfns ();
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1598 syms_of_xmenu ();
17060
8c069ef6e1c4 (main): Call several initialization function introduced
Karl Heuer <kwzh@gnu.org>
parents: 16968
diff changeset
1599 syms_of_fontset ();
106085
cd4cbab8bb21 Handle system default font and changing font parameters.
Jan Djärv <jan.h.d@swipnet.se>
parents: 105877
diff changeset
1600 syms_of_xsettings ();
43815
1a121be11dab (main): Added call to syms_of_xsmfns ().
Jan Djärv <jan.h.d@swipnet.se>
parents: 43713
diff changeset
1601 #ifdef HAVE_X_SM
1a121be11dab (main): Added call to syms_of_xsmfns ().
Jan Djärv <jan.h.d@swipnet.se>
parents: 43713
diff changeset
1602 syms_of_xsmfns ();
1a121be11dab (main): Added call to syms_of_xsmfns ().
Jan Djärv <jan.h.d@swipnet.se>
parents: 43713
diff changeset
1603 #endif
375
7665331b1d5d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 372
diff changeset
1604 #ifdef HAVE_X11
7665331b1d5d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 372
diff changeset
1605 syms_of_xselect ();
7665331b1d5d *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 372
diff changeset
1606 #endif
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1607 #endif /* HAVE_X_WINDOWS */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1608
95649
69ac8c1695d5 (main): Call syms_of_menu.
Chong Yidong <cyd@stupidchicken.com>
parents: 95188
diff changeset
1609 syms_of_menu ();
69ac8c1695d5 (main): Call syms_of_menu.
Chong Yidong <cyd@stupidchicken.com>
parents: 95188
diff changeset
1610
13409
280f00071040 [HAVE_NTGUI]: Declare Vwindow_system.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13393
diff changeset
1611 #ifdef HAVE_NTGUI
16588
481b7874a1e9 Change identifiers of the form win32* to w32*.
Geoff Voelker <voelker@cs.washington.edu>
parents: 16548
diff changeset
1612 syms_of_w32term ();
481b7874a1e9 Change identifiers of the form win32* to w32*.
Geoff Voelker <voelker@cs.washington.edu>
parents: 16548
diff changeset
1613 syms_of_w32fns ();
481b7874a1e9 Change identifiers of the form win32* to w32*.
Geoff Voelker <voelker@cs.washington.edu>
parents: 16548
diff changeset
1614 syms_of_w32select ();
481b7874a1e9 Change identifiers of the form win32* to w32*.
Geoff Voelker <voelker@cs.washington.edu>
parents: 16548
diff changeset
1615 syms_of_w32menu ();
23540
025ff5515ec9 (main) [HAVE_NTGUI]: Invoke syms_of_fontset().
Geoff Voelker <voelker@cs.washington.edu>
parents: 23327
diff changeset
1616 syms_of_fontset ();
13409
280f00071040 [HAVE_NTGUI]: Declare Vwindow_system.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13393
diff changeset
1617 #endif /* HAVE_NTGUI */
280f00071040 [HAVE_NTGUI]: Declare Vwindow_system.
Geoff Voelker <voelker@cs.washington.edu>
parents: 13393
diff changeset
1618
97644
6132e8418cf3 (main) [MSDOS]: Call syms_of_xmenu.
Eli Zaretskii <eliz@gnu.org>
parents: 97287
diff changeset
1619 #ifdef MSDOS
6132e8418cf3 (main) [MSDOS]: Call syms_of_xmenu.
Eli Zaretskii <eliz@gnu.org>
parents: 97287
diff changeset
1620 syms_of_xmenu ();
109361
8ee7c0cee7f9 Convert function definitions to standard C and some cleanups.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109315
diff changeset
1621 syms_of_dosfns();
8ee7c0cee7f9 Convert function definitions to standard C and some cleanups.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109315
diff changeset
1622 syms_of_msdos();
8ee7c0cee7f9 Convert function definitions to standard C and some cleanups.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109315
diff changeset
1623 syms_of_win16select();
97644
6132e8418cf3 (main) [MSDOS]: Call syms_of_xmenu.
Eli Zaretskii <eliz@gnu.org>
parents: 97287
diff changeset
1624 #endif /* MSDOS */
6132e8418cf3 (main) [MSDOS]: Call syms_of_xmenu.
Eli Zaretskii <eliz@gnu.org>
parents: 97287
diff changeset
1625
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1626 #ifdef HAVE_NS
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1627 syms_of_nsterm ();
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1628 syms_of_nsfns ();
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1629 syms_of_nsmenu ();
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1630 syms_of_nsselect ();
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1631 syms_of_fontset ();
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1632 #endif /* HAVE_NS */
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1633
86940
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 86360
diff changeset
1634 #ifdef HAVE_DBUS
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 86360
diff changeset
1635 syms_of_dbusbind ();
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 86360
diff changeset
1636 #endif /* HAVE_DBUS */
2dd672d9fe75 * config.in (HAVE_DBUS): Add.
Michael Albinus <michael.albinus@gmx.de>
parents: 86360
diff changeset
1637
109361
8ee7c0cee7f9 Convert function definitions to standard C and some cleanups.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109315
diff changeset
1638 #ifdef WINDOWSNT
8ee7c0cee7f9 Convert function definitions to standard C and some cleanups.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109315
diff changeset
1639 syms_of_ntterm ();
8ee7c0cee7f9 Convert function definitions to standard C and some cleanups.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109315
diff changeset
1640 #endif /* WINDOWSNT */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1641
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1642 keys_of_casefiddle ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1643 keys_of_cmds ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1644 keys_of_buffer ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1645 keys_of_keyboard ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1646 keys_of_keymap ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1647 keys_of_window ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1648 }
57996
34078c6df297 Whitespace fixup.
Andreas Schwab <schwab@suse.de>
parents: 57876
diff changeset
1649 else
48888
f0df5f687c15 Revisited my earlier fix for the following entry in etc/PROBLEMS: 'Emacs built on Windows 9x/ME crashes at startup on Windows XP, or Emacs builtpart of on XP crashes at startup on Windows 9x/ME.' Fixed several Windows API errors detected by BoundsChecker
Ben Key <bkey1@tampabay.rr.com>
parents: 48319
diff changeset
1650 {
57996
34078c6df297 Whitespace fixup.
Andreas Schwab <schwab@suse.de>
parents: 57876
diff changeset
1651 /* Initialization that must be done even if the global variable
34078c6df297 Whitespace fixup.
Andreas Schwab <schwab@suse.de>
parents: 57876
diff changeset
1652 initialized is non zero. */
48888
f0df5f687c15 Revisited my earlier fix for the following entry in etc/PROBLEMS: 'Emacs built on Windows 9x/ME crashes at startup on Windows XP, or Emacs builtpart of on XP crashes at startup on Windows 9x/ME.' Fixed several Windows API errors detected by BoundsChecker
Ben Key <bkey1@tampabay.rr.com>
parents: 48319
diff changeset
1653 #ifdef HAVE_NTGUI
f0df5f687c15 Revisited my earlier fix for the following entry in etc/PROBLEMS: 'Emacs built on Windows 9x/ME crashes at startup on Windows XP, or Emacs builtpart of on XP crashes at startup on Windows 9x/ME.' Fixed several Windows API errors detected by BoundsChecker
Ben Key <bkey1@tampabay.rr.com>
parents: 48319
diff changeset
1654 globals_of_w32fns ();
f0df5f687c15 Revisited my earlier fix for the following entry in etc/PROBLEMS: 'Emacs built on Windows 9x/ME crashes at startup on Windows XP, or Emacs builtpart of on XP crashes at startup on Windows 9x/ME.' Fixed several Windows API errors detected by BoundsChecker
Ben Key <bkey1@tampabay.rr.com>
parents: 48319
diff changeset
1655 globals_of_w32menu ();
60092
04686828d0da 2004-11-08 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Jason Rumney <jasonr@gnu.org>
parents: 59624
diff changeset
1656 globals_of_w32select ();
57996
34078c6df297 Whitespace fixup.
Andreas Schwab <schwab@suse.de>
parents: 57876
diff changeset
1657 #endif /* HAVE_NTGUI */
48888
f0df5f687c15 Revisited my earlier fix for the following entry in etc/PROBLEMS: 'Emacs built on Windows 9x/ME crashes at startup on Windows XP, or Emacs builtpart of on XP crashes at startup on Windows 9x/ME.' Fixed several Windows API errors detected by BoundsChecker
Ben Key <bkey1@tampabay.rr.com>
parents: 48319
diff changeset
1658 }
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1659
89788
64f9915771f5 (main): Call init_charset after syms_of_XXX.
Kenichi Handa <handa@m17n.org>
parents: 89483
diff changeset
1660 init_charset ();
64f9915771f5 (main): Call init_charset after syms_of_XXX.
Kenichi Handa <handa@m17n.org>
parents: 89483
diff changeset
1661
86360
aa83d83c27fe (main): Call init_editfns before init_process, since
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 85973
diff changeset
1662 init_editfns (); /* init_process uses Voperating_system_release. */
83088
3af83746f912 Fix initialization order at bootstrap (Dan Nicolaescu).
Karoly Lorentey <lorentey@elte.hu>
parents: 83078
diff changeset
1663 init_process (); /* init_display uses add_keyboard_wait_descriptor. */
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
1664 init_keyboard (); /* This too must precede init_sys_modes. */
21962
c452f82d8d45 (main): Call the syms_of_... and keys_of_... functions
Richard M. Stallman <rms@gnu.org>
parents: 21840
diff changeset
1665 if (!noninteractive)
97142
c3512b2085a0 * bitmaps/README:
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97043
diff changeset
1666 init_display (); /* Determine terminal type. Calls init_sys_modes. */
25010
16ced12bd3aa (main): Call init_fns.
Gerd Moellmann <gerd@gnu.org>
parents: 24900
diff changeset
1667 init_fns ();
21962
c452f82d8d45 (main): Call the syms_of_... and keys_of_... functions
Richard M. Stallman <rms@gnu.org>
parents: 21840
diff changeset
1668 init_xdisp ();
53882
94e08e9831b0 (main) [HAVE_WINDOW_SYSTEM]: Call init_fringe_once,
Kim F. Storm <storm@cua.dk>
parents: 53072
diff changeset
1669 #ifdef HAVE_WINDOW_SYSTEM
94e08e9831b0 (main) [HAVE_WINDOW_SYSTEM]: Call init_fringe_once,
Kim F. Storm <storm@cua.dk>
parents: 53072
diff changeset
1670 init_fringe ();
54342
a517c0320eba Image consolidation:
Kim F. Storm <storm@cua.dk>
parents: 54150
diff changeset
1671 init_image ();
53882
94e08e9831b0 (main) [HAVE_WINDOW_SYSTEM]: Call init_fringe_once,
Kim F. Storm <storm@cua.dk>
parents: 53072
diff changeset
1672 #endif /* HAVE_WINDOW_SYSTEM */
21962
c452f82d8d45 (main): Call the syms_of_... and keys_of_... functions
Richard M. Stallman <rms@gnu.org>
parents: 21840
diff changeset
1673 init_macros ();
c452f82d8d45 (main): Call the syms_of_... and keys_of_... functions
Richard M. Stallman <rms@gnu.org>
parents: 21840
diff changeset
1674 init_floatfns ();
25010
16ced12bd3aa (main): Call init_fns.
Gerd Moellmann <gerd@gnu.org>
parents: 24900
diff changeset
1675 #ifdef HAVE_SOUND
16ced12bd3aa (main): Call init_fns.
Gerd Moellmann <gerd@gnu.org>
parents: 24900
diff changeset
1676 init_sound ();
16ced12bd3aa (main): Call init_fns.
Gerd Moellmann <gerd@gnu.org>
parents: 24900
diff changeset
1677 #endif
30036
22cde023296d (handle_USR1_signal, handle_USR2_signal) Clear
Gerd Moellmann <gerd@gnu.org>
parents: 29915
diff changeset
1678 init_window ();
103550
3d99e906c346 (main): Call init_font ().
Kenichi Handa <handa@m17n.org>
parents: 102343
diff changeset
1679 init_font ();
108888
c2ac5cece5ea Turn `directory-sep-char' into a noop.
Juanma Barranquero <lekktu@gmail.com>
parents: 108603
diff changeset
1680
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1681 if (!initialized)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1682 {
9094
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
1683 char *file;
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
1684 /* Handle -l loadup, args passed by Makefile. */
10111
add3c6d21876 (argmatch): Take argc as arg; don't go past end of argv.
Richard M. Stallman <rms@gnu.org>
parents: 10102
diff changeset
1685 if (argmatch (argv, argc, "-l", "--load", 3, &file, &skip_args))
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105872
diff changeset
1686 Vtop_level = Fcons (intern_c_string ("load"),
9094
39a13b869d66 (argmatch): New function.
Karl Heuer <kwzh@gnu.org>
parents: 8843
diff changeset
1687 Fcons (build_string (file), Qnil));
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1688 /* Unless next switch is -nl, load "loadup.el" first thing. */
22553
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1689 if (! no_loadup)
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105872
diff changeset
1690 Vtop_level = Fcons (intern_c_string ("load"),
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1691 Fcons (build_string ("loadup.el"), Qnil));
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1692 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1693
11195
0833fb6a29bb (main): Start with an empty message log.
Karl Heuer <kwzh@gnu.org>
parents: 11157
diff changeset
1694 if (initialized)
0833fb6a29bb (main): Start with an empty message log.
Karl Heuer <kwzh@gnu.org>
parents: 11157
diff changeset
1695 {
14202
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
1696 #ifdef HAVE_TZSET
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
1697 {
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
1698 /* If the execution TZ happens to be the same as the dump TZ,
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
1699 change it to some other value and then change it back,
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
1700 to force the underlying implementation to reload the TZ info.
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
1701 This is needed on implementations that load TZ info from files,
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
1702 since the TZ file contents may differ between dump and execution. */
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
1703 char *tz = getenv ("TZ");
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
1704 if (tz && !strcmp (tz, dump_tz))
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
1705 {
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
1706 ++*tz;
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
1707 tzset ();
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
1708 --*tz;
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
1709 }
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
1710 }
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
1711 #endif
11195
0833fb6a29bb (main): Start with an empty message log.
Karl Heuer <kwzh@gnu.org>
parents: 11157
diff changeset
1712 }
0833fb6a29bb (main): Start with an empty message log.
Karl Heuer <kwzh@gnu.org>
parents: 11157
diff changeset
1713
70965
80022e83a5c2 (main) [PROFILING]: Enable also for __MINGW32__.
Eli Zaretskii <eliz@gnu.org>
parents: 70921
diff changeset
1714 /* Set up for profiling. This is known to work on FreeBSD,
80022e83a5c2 (main) [PROFILING]: Enable also for __MINGW32__.
Eli Zaretskii <eliz@gnu.org>
parents: 70921
diff changeset
1715 GNU/Linux and MinGW. It might work on some other systems too.
80022e83a5c2 (main) [PROFILING]: Enable also for __MINGW32__.
Eli Zaretskii <eliz@gnu.org>
parents: 70921
diff changeset
1716 Give it a try and tell us if it works on your system. To compile
104622
cf947e01a2b6 * lisp.h: Replace #if 0 code for checking with text pointing to
Dan Nicolaescu <dann@ics.uci.edu>
parents: 104370
diff changeset
1717 for profiling, use the configure option --enable-profiling. */
70965
80022e83a5c2 (main) [PROFILING]: Enable also for __MINGW32__.
Eli Zaretskii <eliz@gnu.org>
parents: 70921
diff changeset
1718 #if defined (__FreeBSD__) || defined (GNU_LINUX) || defined(__MINGW32__)
19291
27c3012475b2 (main) [__FreeBSD__ && PROFILING]: Add code for profiling.
Richard M. Stallman <rms@gnu.org>
parents: 19215
diff changeset
1719 #ifdef PROFILING
27c3012475b2 (main) [__FreeBSD__ && PROFILING]: Add code for profiling.
Richard M. Stallman <rms@gnu.org>
parents: 19215
diff changeset
1720 if (initialized)
27c3012475b2 (main) [__FreeBSD__ && PROFILING]: Add code for profiling.
Richard M. Stallman <rms@gnu.org>
parents: 19215
diff changeset
1721 {
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
1722 extern void _mcleanup ();
70965
80022e83a5c2 (main) [PROFILING]: Enable also for __MINGW32__.
Eli Zaretskii <eliz@gnu.org>
parents: 70921
diff changeset
1723 #ifdef __MINGW32__
80022e83a5c2 (main) [PROFILING]: Enable also for __MINGW32__.
Eli Zaretskii <eliz@gnu.org>
parents: 70921
diff changeset
1724 extern unsigned char etext asm ("etext");
80022e83a5c2 (main) [PROFILING]: Enable also for __MINGW32__.
Eli Zaretskii <eliz@gnu.org>
parents: 70921
diff changeset
1725 #else
19291
27c3012475b2 (main) [__FreeBSD__ && PROFILING]: Add code for profiling.
Richard M. Stallman <rms@gnu.org>
parents: 19215
diff changeset
1726 extern char etext;
70965
80022e83a5c2 (main) [PROFILING]: Enable also for __MINGW32__.
Eli Zaretskii <eliz@gnu.org>
parents: 70921
diff changeset
1727 #endif
109539
d962ccf8829f Use __executable_start to find start of text segment for profiling
Andreas Schwab <schwab@linux-m68k.org>
parents: 109378
diff changeset
1728 #ifdef HAVE___EXECUTABLE_START
d962ccf8829f Use __executable_start to find start of text segment for profiling
Andreas Schwab <schwab@linux-m68k.org>
parents: 109378
diff changeset
1729 /* This symbol is defined by GNU ld to the start of the text
d962ccf8829f Use __executable_start to find start of text segment for profiling
Andreas Schwab <schwab@linux-m68k.org>
parents: 109378
diff changeset
1730 segment. */
d962ccf8829f Use __executable_start to find start of text segment for profiling
Andreas Schwab <schwab@linux-m68k.org>
parents: 109378
diff changeset
1731 extern char __executable_start[];
d962ccf8829f Use __executable_start to find start of text segment for profiling
Andreas Schwab <schwab@linux-m68k.org>
parents: 109378
diff changeset
1732 #else
25010
16ced12bd3aa (main): Call init_fns.
Gerd Moellmann <gerd@gnu.org>
parents: 24900
diff changeset
1733 extern void safe_bcopy ();
109539
d962ccf8829f Use __executable_start to find start of text segment for profiling
Andreas Schwab <schwab@linux-m68k.org>
parents: 109378
diff changeset
1734 #endif
26193
45f2d2b5f0d7 (standard_args): Add `file' as synonym for `visit',
Gerd Moellmann <gerd@gnu.org>
parents: 26164
diff changeset
1735
19291
27c3012475b2 (main) [__FreeBSD__ && PROFILING]: Add code for profiling.
Richard M. Stallman <rms@gnu.org>
parents: 19215
diff changeset
1736 atexit (_mcleanup);
109539
d962ccf8829f Use __executable_start to find start of text segment for profiling
Andreas Schwab <schwab@linux-m68k.org>
parents: 109378
diff changeset
1737 #ifdef HAVE___EXECUTABLE_START
d962ccf8829f Use __executable_start to find start of text segment for profiling
Andreas Schwab <schwab@linux-m68k.org>
parents: 109378
diff changeset
1738 monstartup (__executable_start, &etext);
d962ccf8829f Use __executable_start to find start of text segment for profiling
Andreas Schwab <schwab@linux-m68k.org>
parents: 109378
diff changeset
1739 #else
25010
16ced12bd3aa (main): Call init_fns.
Gerd Moellmann <gerd@gnu.org>
parents: 24900
diff changeset
1740 /* This uses safe_bcopy because that function comes first in the
16ced12bd3aa (main): Call init_fns.
Gerd Moellmann <gerd@gnu.org>
parents: 24900
diff changeset
1741 Emacs executable. It might be better to use something that
16ced12bd3aa (main): Call init_fns.
Gerd Moellmann <gerd@gnu.org>
parents: 24900
diff changeset
1742 gives the start of the text segment, but start_of_text is not
16ced12bd3aa (main): Call init_fns.
Gerd Moellmann <gerd@gnu.org>
parents: 24900
diff changeset
1743 defined on all systems now. */
109165
750db9f3e6d8 Replace bcopy, bzero, bcmp by memcpy, memmove, memset, memcmp
Andreas Schwab <schwab@linux-m68k.org>
parents: 109139
diff changeset
1744 /* FIXME: Does not work on architectures with function
750db9f3e6d8 Replace bcopy, bzero, bcmp by memcpy, memmove, memset, memcmp
Andreas Schwab <schwab@linux-m68k.org>
parents: 109139
diff changeset
1745 descriptors. */
25010
16ced12bd3aa (main): Call init_fns.
Gerd Moellmann <gerd@gnu.org>
parents: 24900
diff changeset
1746 monstartup (safe_bcopy, &etext);
109539
d962ccf8829f Use __executable_start to find start of text segment for profiling
Andreas Schwab <schwab@linux-m68k.org>
parents: 109378
diff changeset
1747 #endif
19291
27c3012475b2 (main) [__FreeBSD__ && PROFILING]: Add code for profiling.
Richard M. Stallman <rms@gnu.org>
parents: 19215
diff changeset
1748 }
27c3012475b2 (main) [__FreeBSD__ && PROFILING]: Add code for profiling.
Richard M. Stallman <rms@gnu.org>
parents: 19215
diff changeset
1749 else
27c3012475b2 (main) [__FreeBSD__ && PROFILING]: Add code for profiling.
Richard M. Stallman <rms@gnu.org>
parents: 19215
diff changeset
1750 moncontrol (0);
27c3012475b2 (main) [__FreeBSD__ && PROFILING]: Add code for profiling.
Richard M. Stallman <rms@gnu.org>
parents: 19215
diff changeset
1751 #endif
27c3012475b2 (main) [__FreeBSD__ && PROFILING]: Add code for profiling.
Richard M. Stallman <rms@gnu.org>
parents: 19215
diff changeset
1752 #endif
27c3012475b2 (main) [__FreeBSD__ && PROFILING]: Add code for profiling.
Richard M. Stallman <rms@gnu.org>
parents: 19215
diff changeset
1753
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1754 initialized = 1;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1755
13016
6ad7dc19b526 (main): Call tzset only if LOCALTIME_CACHE is defined;
Richard M. Stallman <rms@gnu.org>
parents: 12971
diff changeset
1756 #ifdef LOCALTIME_CACHE
6ad7dc19b526 (main): Call tzset only if LOCALTIME_CACHE is defined;
Richard M. Stallman <rms@gnu.org>
parents: 12971
diff changeset
1757 /* Some versions of localtime have a bug. They cache the value of the time
815
6aabed5f5d58 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 763
diff changeset
1758 zone rather than looking it up every time. Since localtime() is
6aabed5f5d58 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 763
diff changeset
1759 called to bolt the undumping time into the undumped emacs, this
4303
fd9865b5a41e (main): Test LOCALTIME_CACHE.
Richard M. Stallman <rms@gnu.org>
parents: 3932
diff changeset
1760 results in localtime ignoring the TZ environment variable.
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
1761 This flushes the new TZ value into localtime. */
4303
fd9865b5a41e (main): Test LOCALTIME_CACHE.
Richard M. Stallman <rms@gnu.org>
parents: 3932
diff changeset
1762 tzset ();
13016
6ad7dc19b526 (main): Call tzset only if LOCALTIME_CACHE is defined;
Richard M. Stallman <rms@gnu.org>
parents: 12971
diff changeset
1763 #endif /* defined (LOCALTIME_CACHE) */
815
6aabed5f5d58 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 763
diff changeset
1764
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1765 /* Enter editor command loop. This never returns. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1766 Frecursive_edit ();
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1767 /* NOTREACHED */
31829
43566b0aec59 Avoid some more compiler warnings.
Gerd Moellmann <gerd@gnu.org>
parents: 31602
diff changeset
1768 return 0;
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1769 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1770
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1771 /* Sort the args so we can find the most important ones
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1772 at the beginning of argv. */
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1773
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1774 /* First, here's a table of all the standard options. */
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1775
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1776 struct standard_args
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1777 {
105872
89183b6f6e9d * process.c (socket_options): Make it const.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105726
diff changeset
1778 const char *name;
89183b6f6e9d * process.c (socket_options): Make it const.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105726
diff changeset
1779 const char *longname;
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1780 int priority;
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1781 int nargs;
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1782 };
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1783
105872
89183b6f6e9d * process.c (socket_options): Make it const.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105726
diff changeset
1784 const struct standard_args standard_args[] =
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1785 {
22455
393df8deb0b9 (standard_args): Fix arg order to match code in `main'.
Richard M. Stallman <rms@gnu.org>
parents: 22359
diff changeset
1786 { "-version", "--version", 150, 0 },
108213
e6266e624471 Run kill-emacs when exiting for display closed or SIGTERM/HUP.
Jan D. <jan.h.d@swipnet.se>
parents: 107737
diff changeset
1787 { "-chdir", "--chdir", 130, 1 },
22455
393df8deb0b9 (standard_args): Fix arg order to match code in `main'.
Richard M. Stallman <rms@gnu.org>
parents: 22359
diff changeset
1788 { "-t", "--terminal", 120, 1 },
40572
6ae61fbe6134 (USAGE1): Show command line option --no-window-system instead of
Pavel Janík <Pavel@Janik.cz>
parents: 40535
diff changeset
1789 { "-nw", "--no-window-system", 110, 0 },
22455
393df8deb0b9 (standard_args): Fix arg order to match code in `main'.
Richard M. Stallman <rms@gnu.org>
parents: 22359
diff changeset
1790 { "-nw", "--no-windows", 110, 0 },
393df8deb0b9 (standard_args): Fix arg order to match code in `main'.
Richard M. Stallman <rms@gnu.org>
parents: 22359
diff changeset
1791 { "-batch", "--batch", 100, 0 },
47059
83efa005a987 (main): Handle --script.
Richard M. Stallman <rms@gnu.org>
parents: 47047
diff changeset
1792 { "-script", "--script", 100, 1 },
98290
90bc7e356363 * emacs.c (standard_args): Add --daemon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97644
diff changeset
1793 { "-daemon", "--daemon", 99, 0 },
22455
393df8deb0b9 (standard_args): Fix arg order to match code in `main'.
Richard M. Stallman <rms@gnu.org>
parents: 22359
diff changeset
1794 { "-help", "--help", 90, 0 },
22553
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1795 { "-no-unibyte", "--no-unibyte", 83, 0 },
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1796 { "-multibyte", "--multibyte", 82, 0 },
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1797 { "-unibyte", "--unibyte", 81, 0 },
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1798 { "-no-multibyte", "--no-multibyte", 80, 0 },
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1799 { "-nl", "--no-loadup", 70, 0 },
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1800 /* -d must come last before the options handled in startup.el. */
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1801 { "-d", "--display", 60, 1 },
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1802 { "-display", 0, 60, 1 },
106864
db05908c4fc1 Command line arg processing fix (Bug#5392)
Chong Yidong <cyd@stupidchicken.com>
parents: 106818
diff changeset
1803 /* Now for the options handled in `command-line' (startup.el). */
61446
397fed153f02 (standard_args): Rename --bare-bones to --quick.
Richard M. Stallman <rms@gnu.org>
parents: 61346
diff changeset
1804 { "-Q", "--quick", 55, 0 },
397fed153f02 (standard_args): Rename --bare-bones to --quick.
Richard M. Stallman <rms@gnu.org>
parents: 61346
diff changeset
1805 { "-quick", 0, 55, 0 },
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1806 { "-q", "--no-init-file", 50, 0 },
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1807 { "-no-init-file", 0, 50, 0 },
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1808 { "-no-site-file", "--no-site-file", 40, 0 },
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1809 { "-u", "--user", 30, 1 },
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1810 { "-user", 0, 30, 1 },
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1811 { "-debug-init", "--debug-init", 20, 0 },
11596
b59f90606227 (standard_args): Move -iconic and --icon-type (etc.)
Richard M. Stallman <rms@gnu.org>
parents: 11235
diff changeset
1812 { "-iconic", "--iconic", 15, 0 },
61446
397fed153f02 (standard_args): Rename --bare-bones to --quick.
Richard M. Stallman <rms@gnu.org>
parents: 61346
diff changeset
1813 { "-D", "--basic-display", 12, 0},
64775
17ea5769514d (endif): Convert -script into -scriptload.
Richard M. Stallman <rms@gnu.org>
parents: 64770
diff changeset
1814 { "-basic-display", 0, 12, 0},
106864
db05908c4fc1 Command line arg processing fix (Bug#5392)
Chong Yidong <cyd@stupidchicken.com>
parents: 106818
diff changeset
1815 { "-nbc", "--no-blinking-cursor", 12, 0 },
db05908c4fc1 Command line arg processing fix (Bug#5392)
Chong Yidong <cyd@stupidchicken.com>
parents: 106818
diff changeset
1816 /* Now for the options handled in `command-line-1' (startup.el). */
db05908c4fc1 Command line arg processing fix (Bug#5392)
Chong Yidong <cyd@stupidchicken.com>
parents: 106818
diff changeset
1817 { "-nbi", "--no-bitmap-icon", 10, 0 },
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1818 { "-bg", "--background-color", 10, 1 },
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1819 { "-background", 0, 10, 1 },
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1820 { "-fg", "--foreground-color", 10, 1 },
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1821 { "-foreground", 0, 10, 1 },
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1822 { "-bd", "--border-color", 10, 1 },
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1823 { "-bw", "--border-width", 10, 1 },
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1824 { "-ib", "--internal-border", 10, 1 },
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1825 { "-ms", "--mouse-color", 10, 1 },
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1826 { "-cr", "--cursor-color", 10, 1 },
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1827 { "-fn", "--font", 10, 1 },
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1828 { "-font", 0, 10, 1 },
42723
112393bdb5f9 (USAGE2): Add the new full-screen arguments.
Eli Zaretskii <eliz@gnu.org>
parents: 42276
diff changeset
1829 { "-fs", "--fullscreen", 10, 0 },
112393bdb5f9 (USAGE2): Add the new full-screen arguments.
Eli Zaretskii <eliz@gnu.org>
parents: 42276
diff changeset
1830 { "-fw", "--fullwidth", 10, 0 },
112393bdb5f9 (USAGE2): Add the new full-screen arguments.
Eli Zaretskii <eliz@gnu.org>
parents: 42276
diff changeset
1831 { "-fh", "--fullheight", 10, 0 },
103665
340c701162a6 * emacs.c (USAGE3, standard_args): Add -mm and --maximized.
Jan Djärv <jan.h.d@swipnet.se>
parents: 103550
diff changeset
1832 { "-mm", "--maximized", 10, 0 },
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1833 { "-g", "--geometry", 10, 1 },
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1834 { "-geometry", 0, 10, 1 },
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1835 { "-T", "--title", 10, 1 },
14993
a29d378dc9cd (standard_args): Synchronize with startup.el.
Richard M. Stallman <rms@gnu.org>
parents: 14968
diff changeset
1836 { "-title", 0, 10, 1 },
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1837 { "-name", "--name", 10, 1 },
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1838 { "-xrm", "--xrm", 10, 1 },
91634
69cda6392921 (USAGE3): Add --parent-id
Jan Djärv <jan.h.d@swipnet.se>
parents: 91368
diff changeset
1839 { "-parent-id", "--parent-id", 10, 1 },
10517
08e3895c1fdc (sort_args): Ordinary args get priority 0.
Richard M. Stallman <rms@gnu.org>
parents: 10388
diff changeset
1840 { "-r", "--reverse-video", 5, 0 },
08e3895c1fdc (sort_args): Ordinary args get priority 0.
Richard M. Stallman <rms@gnu.org>
parents: 10388
diff changeset
1841 { "-rv", 0, 5, 0 },
08e3895c1fdc (sort_args): Ordinary args get priority 0.
Richard M. Stallman <rms@gnu.org>
parents: 10388
diff changeset
1842 { "-reverse", 0, 5, 0 },
14993
a29d378dc9cd (standard_args): Synchronize with startup.el.
Richard M. Stallman <rms@gnu.org>
parents: 14968
diff changeset
1843 { "-hb", "--horizontal-scroll-bars", 5, 0 },
10517
08e3895c1fdc (sort_args): Ordinary args get priority 0.
Richard M. Stallman <rms@gnu.org>
parents: 10388
diff changeset
1844 { "-vb", "--vertical-scroll-bars", 5, 0 },
42744
ecb614567352 (USAGE2): Add the --color option.
Eli Zaretskii <eliz@gnu.org>
parents: 42723
diff changeset
1845 { "-color", "--color", 5, 0},
78920
28b71c901e03 (standard_args): Change priority of "--no-splash"
Juri Linkov <juri@jurta.org>
parents: 78436
diff changeset
1846 { "-no-splash", "--no-splash", 3, 0 },
28b71c901e03 (standard_args): Change priority of "--no-splash"
Juri Linkov <juri@jurta.org>
parents: 78436
diff changeset
1847 { "-no-desktop", "--no-desktop", 3, 0 },
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1848 #ifdef HAVE_NS
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1849 { "-NSAutoLaunch", 0, 5, 1 },
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1850 { "-NXAutoLaunch", 0, 5, 1 },
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1851 { "-disable-font-backend", "--disable-font-backend", 65, 0 },
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1852 { "-_NSMachLaunch", 0, 85, 1 },
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1853 { "-MachLaunch", 0, 85, 1 },
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1854 { "-macosx", 0, 85, 0 },
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1855 { "-NSHost", 0, 85, 1 },
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1856 #endif
10517
08e3895c1fdc (sort_args): Ordinary args get priority 0.
Richard M. Stallman <rms@gnu.org>
parents: 10388
diff changeset
1857 /* These have the same priority as ordinary file name args,
08e3895c1fdc (sort_args): Ordinary args get priority 0.
Richard M. Stallman <rms@gnu.org>
parents: 10388
diff changeset
1858 so they are not reordered with respect to those. */
11623
584362605c5e (standard_args): Add -L/--directory/-directory.
Richard M. Stallman <rms@gnu.org>
parents: 11596
diff changeset
1859 { "-L", "--directory", 0, 1 },
584362605c5e (standard_args): Add -L/--directory/-directory.
Richard M. Stallman <rms@gnu.org>
parents: 11596
diff changeset
1860 { "-directory", 0, 0, 1 },
10517
08e3895c1fdc (sort_args): Ordinary args get priority 0.
Richard M. Stallman <rms@gnu.org>
parents: 10388
diff changeset
1861 { "-l", "--load", 0, 1 },
08e3895c1fdc (sort_args): Ordinary args get priority 0.
Richard M. Stallman <rms@gnu.org>
parents: 10388
diff changeset
1862 { "-load", 0, 0, 1 },
92892
dc8ef1d9d71d (main): Revert previous change.
Glenn Morris <rgm@gnu.org>
parents: 92792
diff changeset
1863 /* This has no longname, because using --scriptload confuses sort_args,
dc8ef1d9d71d (main): Revert previous change.
Glenn Morris <rgm@gnu.org>
parents: 92792
diff changeset
1864 because then the --script long option seems to match twice; ie
dc8ef1d9d71d (main): Revert previous change.
Glenn Morris <rgm@gnu.org>
parents: 92792
diff changeset
1865 you can't have a long option which is a prefix of another long
dc8ef1d9d71d (main): Revert previous change.
Glenn Morris <rgm@gnu.org>
parents: 92792
diff changeset
1866 option. In any case, this is entirely an internal option. */
dc8ef1d9d71d (main): Revert previous change.
Glenn Morris <rgm@gnu.org>
parents: 92792
diff changeset
1867 { "-scriptload", NULL, 0, 1 },
10517
08e3895c1fdc (sort_args): Ordinary args get priority 0.
Richard M. Stallman <rms@gnu.org>
parents: 10388
diff changeset
1868 { "-f", "--funcall", 0, 1 },
08e3895c1fdc (sort_args): Ordinary args get priority 0.
Richard M. Stallman <rms@gnu.org>
parents: 10388
diff changeset
1869 { "-funcall", 0, 0, 1 },
12851
89d5e3a554de (standard_args): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents: 12848
diff changeset
1870 { "-eval", "--eval", 0, 1 },
26193
45f2d2b5f0d7 (standard_args): Add `file' as synonym for `visit',
Gerd Moellmann <gerd@gnu.org>
parents: 26164
diff changeset
1871 { "-execute", "--execute", 0, 1 },
16749
c85f62b1b749 (standard_args): Add -find-file and -visit.
Richard M. Stallman <rms@gnu.org>
parents: 16588
diff changeset
1872 { "-find-file", "--find-file", 0, 1 },
c85f62b1b749 (standard_args): Add -find-file and -visit.
Richard M. Stallman <rms@gnu.org>
parents: 16588
diff changeset
1873 { "-visit", "--visit", 0, 1 },
26193
45f2d2b5f0d7 (standard_args): Add `file' as synonym for `visit',
Gerd Moellmann <gerd@gnu.org>
parents: 26164
diff changeset
1874 { "-file", "--file", 0, 1 },
10517
08e3895c1fdc (sort_args): Ordinary args get priority 0.
Richard M. Stallman <rms@gnu.org>
parents: 10388
diff changeset
1875 { "-insert", "--insert", 0, 1 },
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1876 #ifdef HAVE_NS
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1877 { "-NXOpen", 0, 0, 1 },
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1878 { "-NXOpenTemp", 0, 0, 1 },
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1879 { "-NSOpen", 0, 0, 1 },
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1880 { "-NSOpenTemp", 0, 0, 1 },
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1881 { "-GSFilePath", 0, 0, 1 },
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
1882 #endif
11596
b59f90606227 (standard_args): Move -iconic and --icon-type (etc.)
Richard M. Stallman <rms@gnu.org>
parents: 11235
diff changeset
1883 /* This should be processed after ordinary file name args and the like. */
10517
08e3895c1fdc (sort_args): Ordinary args get priority 0.
Richard M. Stallman <rms@gnu.org>
parents: 10388
diff changeset
1884 { "-kill", "--kill", -10, 0 },
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1885 };
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1886
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1887 /* Reorder the elements of ARGV (assumed to have ARGC elements)
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1888 so that the highest priority ones come first.
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1889 Do not change the order of elements of equal priority.
22553
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1890 If an option takes an argument, keep it and its argument together.
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1891
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1892 If an option that takes no argument appears more
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1893 than once, eliminate all but one copy of it. */
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1894
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1895 static void
109139
c25c24812fb1 Convert declarations or definitions to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
1896 sort_args (int argc, char **argv)
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1897 {
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1898 char **new = (char **) xmalloc (sizeof (char *) * argc);
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1899 /* For each element of argv,
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1900 the corresponding element of options is:
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1901 0 for an option that takes no arguments,
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1902 1 for an option that takes one argument, etc.
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1903 -1 for an ordinary non-option argument. */
10150
d8fb9db90d8e (sort_args): Make `options' a vector of ints.
Richard M. Stallman <rms@gnu.org>
parents: 10111
diff changeset
1904 int *options = (int *) xmalloc (sizeof (int) * argc);
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1905 int *priority = (int *) xmalloc (sizeof (int) * argc);
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1906 int to = 1;
22553
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1907 int incoming_used = 1;
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1908 int from;
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1909 int i;
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1910
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1911 /* Categorize all the options,
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1912 and figure out which argv elts are option arguments. */
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1913 for (from = 1; from < argc; from++)
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1914 {
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1915 options[from] = -1;
10517
08e3895c1fdc (sort_args): Ordinary args get priority 0.
Richard M. Stallman <rms@gnu.org>
parents: 10388
diff changeset
1916 priority[from] = 0;
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1917 if (argv[from][0] == '-')
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1918 {
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1919 int match, thislen;
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1920 char *equals;
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1921
16091
d76a0697d12e (sort_args): Don't rearrange any args that follow "--".
Richard M. Stallman <rms@gnu.org>
parents: 16046
diff changeset
1922 /* If we have found "--", don't consider
d76a0697d12e (sort_args): Don't rearrange any args that follow "--".
Richard M. Stallman <rms@gnu.org>
parents: 16046
diff changeset
1923 any more arguments as options. */
19030
469abf255dcb (sort_args): Check properly for `--'.
Richard M. Stallman <rms@gnu.org>
parents: 18950
diff changeset
1924 if (argv[from][1] == '-' && argv[from][2] == 0)
16091
d76a0697d12e (sort_args): Don't rearrange any args that follow "--".
Richard M. Stallman <rms@gnu.org>
parents: 16046
diff changeset
1925 {
d76a0697d12e (sort_args): Don't rearrange any args that follow "--".
Richard M. Stallman <rms@gnu.org>
parents: 16046
diff changeset
1926 /* Leave the "--", and everything following it, at the end. */
d76a0697d12e (sort_args): Don't rearrange any args that follow "--".
Richard M. Stallman <rms@gnu.org>
parents: 16046
diff changeset
1927 for (; from < argc; from++)
d76a0697d12e (sort_args): Don't rearrange any args that follow "--".
Richard M. Stallman <rms@gnu.org>
parents: 16046
diff changeset
1928 {
d76a0697d12e (sort_args): Don't rearrange any args that follow "--".
Richard M. Stallman <rms@gnu.org>
parents: 16046
diff changeset
1929 priority[from] = -100;
d76a0697d12e (sort_args): Don't rearrange any args that follow "--".
Richard M. Stallman <rms@gnu.org>
parents: 16046
diff changeset
1930 options[from] = -1;
d76a0697d12e (sort_args): Don't rearrange any args that follow "--".
Richard M. Stallman <rms@gnu.org>
parents: 16046
diff changeset
1931 }
d76a0697d12e (sort_args): Don't rearrange any args that follow "--".
Richard M. Stallman <rms@gnu.org>
parents: 16046
diff changeset
1932 break;
d76a0697d12e (sort_args): Don't rearrange any args that follow "--".
Richard M. Stallman <rms@gnu.org>
parents: 16046
diff changeset
1933 }
d76a0697d12e (sort_args): Don't rearrange any args that follow "--".
Richard M. Stallman <rms@gnu.org>
parents: 16046
diff changeset
1934
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1935 /* Look for a match with a known old-fashioned option. */
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1936 for (i = 0; i < sizeof (standard_args) / sizeof (standard_args[0]); i++)
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1937 if (!strcmp (argv[from], standard_args[i].name))
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1938 {
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1939 options[from] = standard_args[i].nargs;
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1940 priority[from] = standard_args[i].priority;
14399
3a16ff5f6594 (sort_args): Error if option is missing an arg.
Richard M. Stallman <rms@gnu.org>
parents: 14202
diff changeset
1941 if (from + standard_args[i].nargs >= argc)
3a16ff5f6594 (sort_args): Error if option is missing an arg.
Richard M. Stallman <rms@gnu.org>
parents: 14202
diff changeset
1942 fatal ("Option `%s' requires an argument\n", argv[from]);
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1943 from += standard_args[i].nargs;
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1944 goto done;
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1945 }
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1946
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1947 /* Look for a match with a known long option.
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1948 MATCH is -1 if no match so far, -2 if two or more matches so far,
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1949 >= 0 (the table index of the match) if just one match so far. */
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1950 if (argv[from][1] == '-')
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1951 {
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1952 match = -1;
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1953 thislen = strlen (argv[from]);
109315
8f3464b85afb Use strchr, strrchr instead of index, rindex
Andreas Schwab <schwab@linux-m68k.org>
parents: 109313
diff changeset
1954 equals = strchr (argv[from], '=');
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1955 if (equals != 0)
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1956 thislen = equals - argv[from];
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1957
11157
620fd38579d8 (sort_args): Skip strncmp if longname is a null pointer.
Karl Heuer <kwzh@gnu.org>
parents: 11076
diff changeset
1958 for (i = 0;
620fd38579d8 (sort_args): Skip strncmp if longname is a null pointer.
Karl Heuer <kwzh@gnu.org>
parents: 11076
diff changeset
1959 i < sizeof (standard_args) / sizeof (standard_args[0]); i++)
620fd38579d8 (sort_args): Skip strncmp if longname is a null pointer.
Karl Heuer <kwzh@gnu.org>
parents: 11076
diff changeset
1960 if (standard_args[i].longname
620fd38579d8 (sort_args): Skip strncmp if longname is a null pointer.
Karl Heuer <kwzh@gnu.org>
parents: 11076
diff changeset
1961 && !strncmp (argv[from], standard_args[i].longname,
620fd38579d8 (sort_args): Skip strncmp if longname is a null pointer.
Karl Heuer <kwzh@gnu.org>
parents: 11076
diff changeset
1962 thislen))
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1963 {
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1964 if (match == -1)
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1965 match = i;
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1966 else
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1967 match = -2;
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1968 }
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1969
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1970 /* If we found exactly one match, use that. */
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1971 if (match >= 0)
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1972 {
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1973 options[from] = standard_args[match].nargs;
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1974 priority[from] = standard_args[match].priority;
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1975 /* If --OPTION=VALUE syntax is used,
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1976 this option uses just one argv element. */
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1977 if (equals != 0)
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1978 options[from] = 0;
14399
3a16ff5f6594 (sort_args): Error if option is missing an arg.
Richard M. Stallman <rms@gnu.org>
parents: 14202
diff changeset
1979 if (from + options[from] >= argc)
3a16ff5f6594 (sort_args): Error if option is missing an arg.
Richard M. Stallman <rms@gnu.org>
parents: 14202
diff changeset
1980 fatal ("Option `%s' requires an argument\n", argv[from]);
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1981 from += options[from];
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1982 }
92792
eb36bc19579d (main, standard_args): Rename -scriptload to -internal-script.
Glenn Morris <rgm@gnu.org>
parents: 92251
diff changeset
1983 /* FIXME When match < 0, shouldn't there be some error,
eb36bc19579d (main, standard_args): Rename -scriptload to -internal-script.
Glenn Morris <rgm@gnu.org>
parents: 92251
diff changeset
1984 or at least indication to the user that there was a
eb36bc19579d (main, standard_args): Rename -scriptload to -internal-script.
Glenn Morris <rgm@gnu.org>
parents: 92251
diff changeset
1985 problem? */
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1986 }
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1987 done: ;
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1988 }
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1989 }
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1990
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1991 /* Copy the arguments, in order of decreasing priority, to NEW. */
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1992 new[0] = argv[0];
22553
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
1993 while (incoming_used < argc)
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1994 {
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1995 int best = -1;
12861
c67a46e4fcef (sort_args): Initialize best_priority smaller than any
Karl Heuer <kwzh@gnu.org>
parents: 12851
diff changeset
1996 int best_priority = -9999;
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1997
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1998 /* Find the highest priority remaining option.
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
1999 If several have equal priority, take the first of them. */
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2000 for (from = 1; from < argc; from++)
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2001 {
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2002 if (argv[from] != 0 && priority[from] > best_priority)
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2003 {
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2004 best_priority = priority[from];
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2005 best = from;
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2006 }
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2007 /* Skip option arguments--they are tied to the options. */
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2008 if (options[from] > 0)
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2009 from += options[from];
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2010 }
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2011
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2012 if (best < 0)
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2013 abort ();
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2014
22553
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
2015 /* Copy the highest priority remaining option, with its args, to NEW.
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
2016 Unless it is a duplicate of the previous one. */
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
2017 if (! (options[best] == 0
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
2018 && ! strcmp (new[to - 1], argv[best])))
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
2019 {
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
2020 new[to++] = argv[best];
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
2021 for (i = 0; i < options[best]; i++)
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
2022 new[to++] = argv[best + i + 1];
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
2023 }
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
2024
b071f874301e (sort_args): Discard duplicate options with no args.
Richard M. Stallman <rms@gnu.org>
parents: 22529
diff changeset
2025 incoming_used += 1 + (options[best] > 0 ? options[best] : 0);
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2026
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2027 /* Clear out this option in ARGV. */
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2028 argv[best] = 0;
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2029 for (i = 0; i < options[best]; i++)
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2030 argv[best + i + 1] = 0;
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2031 }
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2032
23327
8875c38b22c7 (sort_args): Fill extra space with NULL ptrs.
Richard M. Stallman <rms@gnu.org>
parents: 23227
diff changeset
2033 /* If duplicate options were deleted, fill up extra space with null ptrs. */
8875c38b22c7 (sort_args): Fill extra space with NULL ptrs.
Richard M. Stallman <rms@gnu.org>
parents: 23227
diff changeset
2034 while (to < argc)
8875c38b22c7 (sort_args): Fill extra space with NULL ptrs.
Richard M. Stallman <rms@gnu.org>
parents: 23227
diff changeset
2035 new[to++] = 0;
8875c38b22c7 (sort_args): Fill extra space with NULL ptrs.
Richard M. Stallman <rms@gnu.org>
parents: 23227
diff changeset
2036
109165
750db9f3e6d8 Replace bcopy, bzero, bcmp by memcpy, memmove, memset, memcmp
Andreas Schwab <schwab@linux-m68k.org>
parents: 109139
diff changeset
2037 memcpy (argv, new, sizeof (char *) * argc);
17563
b696f990c544 (sort_args): Free the malloc'd memory.
Richard M. Stallman <rms@gnu.org>
parents: 17346
diff changeset
2038
58632
c0b9a69b829b (malloc_initialize_hook): Don't free malloc_state_ptr if
Kim F. Storm <storm@cua.dk>
parents: 58617
diff changeset
2039 xfree (options);
c0b9a69b829b (malloc_initialize_hook): Don't free malloc_state_ptr if
Kim F. Storm <storm@cua.dk>
parents: 58617
diff changeset
2040 xfree (new);
c0b9a69b829b (malloc_initialize_hook): Don't free malloc_state_ptr if
Kim F. Storm <storm@cua.dk>
parents: 58617
diff changeset
2041 xfree (priority);
10029
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2042 }
fdc1155b891c (sort_args): New function.
Richard M. Stallman <rms@gnu.org>
parents: 9788
diff changeset
2043
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2044 DEFUN ("kill-emacs", Fkill_emacs, Skill_emacs, 0, 1, "P",
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2045 doc: /* Exit the Emacs job and kill it.
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2046 If ARG is an integer, return ARG as the exit program code.
73623
04072a86a717 (Fkill_emacs): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 72982
diff changeset
2047 If ARG is a string, stuff it as keyboard input.
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2048
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2049 The value of `kill-emacs-hook', if not void,
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2050 is a list of functions (of no args),
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2051 all of which are called before Emacs is actually killed. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109165
diff changeset
2052 (Lisp_Object arg)
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2053 {
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2054 struct gcpro gcpro1;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2055
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2056 GCPRO1 (arg);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2057
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2058 if (feof (stdin))
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2059 arg = Qt;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2060
505
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
2061 if (!NILP (Vrun_hooks) && !noninteractive)
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2062 call1 (Vrun_hooks, intern ("kill-emacs-hook"));
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2063
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2064 UNGCPRO;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2065
3837
85652925d5b8 * emacs.c (Fkill_emacs): Pass third argument to shut_down_emacs.
Jim Blandy <jimb@redhat.com>
parents: 3826
diff changeset
2066 shut_down_emacs (0, 0, STRINGP (arg) ? arg : Qnil);
1774
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2067
11846
778a35aba3f7 (Fkill_emacs): Delete the auto-save-list file
Karl Heuer <kwzh@gnu.org>
parents: 11841
diff changeset
2068 /* If we have an auto-save list file,
778a35aba3f7 (Fkill_emacs): Delete the auto-save-list file
Karl Heuer <kwzh@gnu.org>
parents: 11841
diff changeset
2069 kill it because we are exiting Emacs deliberately (not crashing).
778a35aba3f7 (Fkill_emacs): Delete the auto-save-list file
Karl Heuer <kwzh@gnu.org>
parents: 11841
diff changeset
2070 Do it after shut_down_emacs, which does an auto-save. */
778a35aba3f7 (Fkill_emacs): Delete the auto-save-list file
Karl Heuer <kwzh@gnu.org>
parents: 11841
diff changeset
2071 if (STRINGP (Vauto_save_list_file_name))
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46293
diff changeset
2072 unlink (SDATA (Vauto_save_list_file_name));
11846
778a35aba3f7 (Fkill_emacs): Delete the auto-save-list file
Karl Heuer <kwzh@gnu.org>
parents: 11841
diff changeset
2073
60348
84d948a78a71 (Fkill_emacs): Use EXIT_SUCCESS;
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 60092
diff changeset
2074 exit (INTEGERP (arg) ? XINT (arg) : EXIT_SUCCESS);
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2075 }
1774
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2076
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2077
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2078 /* Perform an orderly shutdown of Emacs. Autosave any modified
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2079 buffers, kill any child processes, clean up the terminal modes (if
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2080 we're in the foreground), and other stuff like that. Don't perform
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2081 any redisplay; this may be called when Emacs is shutting down in
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2082 the background, or after its X connection has died.
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2083
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2084 If SIG is a signal number, print a message for it.
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2085
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2086 This is called by fatal signal handlers, X protocol error handlers,
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2087 and Fkill_emacs. */
3711
5acf09035d16 (shut_down_emacs): New arg STUFF. Stuff input here.
Richard M. Stallman <rms@gnu.org>
parents: 3655
diff changeset
2088
1774
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2089 void
109364
89a16701cde1 Convert old-style definitions
Andreas Schwab <schwab@linux-m68k.org>
parents: 109361
diff changeset
2090 shut_down_emacs (int sig, int no_x, Lisp_Object stuff)
1774
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2091 {
6210
dcc7759634d8 (shut_down_emacs): Set Vrun_hooks to nil.
Richard M. Stallman <rms@gnu.org>
parents: 6171
diff changeset
2092 /* Prevent running of hooks from now on. */
dcc7759634d8 (shut_down_emacs): Set Vrun_hooks to nil.
Richard M. Stallman <rms@gnu.org>
parents: 6171
diff changeset
2093 Vrun_hooks = Qnil;
dcc7759634d8 (shut_down_emacs): Set Vrun_hooks to nil.
Richard M. Stallman <rms@gnu.org>
parents: 6171
diff changeset
2094
56034
161424b0c2f5 (shut_down_emacs): Inhibit redisplay during shutdown.
Kim F. Storm <storm@cua.dk>
parents: 55742
diff changeset
2095 /* Don't update display from now on. */
161424b0c2f5 (shut_down_emacs): Inhibit redisplay during shutdown.
Kim F. Storm <storm@cua.dk>
parents: 55742
diff changeset
2096 Vinhibit_redisplay = Qt;
161424b0c2f5 (shut_down_emacs): Inhibit redisplay during shutdown.
Kim F. Storm <storm@cua.dk>
parents: 55742
diff changeset
2097
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2098 /* If we are controlling the terminal, reset terminal modes. */
1774
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2099 #ifdef EMACS_HAVE_TTY_PGRP
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2100 {
4957
dccce35b1173 (main): Use EMACS_GETPGRP macro.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
2101 int pgrp = EMACS_GETPGRP (0);
dccce35b1173 (main): Use EMACS_GETPGRP macro.
Richard M. Stallman <rms@gnu.org>
parents: 4696
diff changeset
2102
1774
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2103 int tpgrp;
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2104 if (EMACS_GET_TTY_PGRP (0, &tpgrp) != -1
3826
647bef18618f Changes for Irix 4.0, tested this time:
Jim Blandy <jimb@redhat.com>
parents: 3801
diff changeset
2105 && tpgrp == pgrp)
1774
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2106 {
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53072
diff changeset
2107 reset_all_sys_modes ();
1774
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2108 if (sig && sig != SIGTERM)
53072
8787289602d1 Remove period at end of error message.
Jan Djärv <jan.h.d@swipnet.se>
parents: 52401
diff changeset
2109 fprintf (stderr, "Fatal error (%d)", sig);
1774
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2110 }
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2111 }
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2112 #else
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2113 fflush (stdout);
53341
d4e6a050c9b1 Bugfix festival.
Karoly Lorentey <lorentey@elte.hu>
parents: 53229
diff changeset
2114 reset_all_sys_modes ();
1774
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2115 #endif
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2116
3711
5acf09035d16 (shut_down_emacs): New arg STUFF. Stuff input here.
Richard M. Stallman <rms@gnu.org>
parents: 3655
diff changeset
2117 stuff_buffered_input (stuff);
5acf09035d16 (shut_down_emacs): New arg STUFF. Stuff input here.
Richard M. Stallman <rms@gnu.org>
parents: 3655
diff changeset
2118
72728
31f876da25bf (shut_down_emacs): Set inhibit_sentinels.
Richard M. Stallman <rms@gnu.org>
parents: 70965
diff changeset
2119 inhibit_sentinels = 1;
1774
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2120 kill_buffer_processes (Qnil);
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2121 Fdo_auto_save (Qt, Qnil);
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2122
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2123 #ifdef CLASH_DETECTION
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2124 unlock_all_files ();
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2125 #endif
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2126
8815
b1766995a504 (shut_down_emacs): Don't call Fx_close_current_connection.
Richard M. Stallman <rms@gnu.org>
parents: 8704
diff changeset
2127 #if 0 /* This triggers a bug in XCloseDisplay and is not needed. */
3273
a5e5e1e04331 Don't include termios.h directly--let systty.h do it.
Richard M. Stallman <rms@gnu.org>
parents: 3187
diff changeset
2128 #ifdef HAVE_X_WINDOWS
7538
c4d128d26fc9 (syms_of_emacs): EMACS_CONFIGURATION renamed from CONFIGURATION.
Richard M. Stallman <rms@gnu.org>
parents: 7480
diff changeset
2129 /* It's not safe to call intern here. Maybe we are crashing. */
83014
f5cadabb36dd Support for opening X frames from a tty session.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
2130 if (!noninteractive && SYMBOLP (Vinitial_window_system)
f5cadabb36dd Support for opening X frames from a tty session.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
2131 && SCHARS (SYMBOL_NAME (Vinitial_window_system)) == 1
f5cadabb36dd Support for opening X frames from a tty session.
Karoly Lorentey <lorentey@elte.hu>
parents: 83004
diff changeset
2132 && SREF (SYMBOL_NAME (Vinitial_window_system), 0) == 'x'
7538
c4d128d26fc9 (syms_of_emacs): EMACS_CONFIGURATION renamed from CONFIGURATION.
Richard M. Stallman <rms@gnu.org>
parents: 7480
diff changeset
2133 && ! no_x)
3273
a5e5e1e04331 Don't include termios.h directly--let systty.h do it.
Richard M. Stallman <rms@gnu.org>
parents: 3187
diff changeset
2134 Fx_close_current_connection ();
a5e5e1e04331 Don't include termios.h directly--let systty.h do it.
Richard M. Stallman <rms@gnu.org>
parents: 3187
diff changeset
2135 #endif /* HAVE_X_WINDOWS */
8815
b1766995a504 (shut_down_emacs): Don't call Fx_close_current_connection.
Richard M. Stallman <rms@gnu.org>
parents: 8704
diff changeset
2136 #endif
3273
a5e5e1e04331 Don't include termios.h directly--let systty.h do it.
Richard M. Stallman <rms@gnu.org>
parents: 3187
diff changeset
2137
1774
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2138 #ifdef SIGIO
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2139 /* There is a tendency for a SIGIO signal to arrive within exit,
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2140 and cause a SIGHUP because the input descriptor is already closed. */
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2141 unrequest_sigio ();
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2142 signal (SIGIO, SIG_IGN);
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2143 #endif
15089
3305f0390624 (main) [WINDOWSNT]: Invoke init_ntproc.
Richard M. Stallman <rms@gnu.org>
parents: 15012
diff changeset
2144
3305f0390624 (main) [WINDOWSNT]: Invoke init_ntproc.
Richard M. Stallman <rms@gnu.org>
parents: 15012
diff changeset
2145 #ifdef WINDOWSNT
3305f0390624 (main) [WINDOWSNT]: Invoke init_ntproc.
Richard M. Stallman <rms@gnu.org>
parents: 15012
diff changeset
2146 term_ntproc ();
3305f0390624 (main) [WINDOWSNT]: Invoke init_ntproc.
Richard M. Stallman <rms@gnu.org>
parents: 15012
diff changeset
2147 #endif
20037
a4042bd1c038 (shut_down_emacs): Call `dos_cleanup'.
Eli Zaretskii <eliz@gnu.org>
parents: 19752
diff changeset
2148
39035
217755d3b319 (shut_down_emacs): Don't call check_glyph_memory
Gerd Moellmann <gerd@gnu.org>
parents: 38458
diff changeset
2149 /* Do this only if terminating normally, we want glyph matrices
217755d3b319 (shut_down_emacs): Don't call check_glyph_memory
Gerd Moellmann <gerd@gnu.org>
parents: 38458
diff changeset
2150 etc. in a core dump. */
39036
9ce039b7595b (shut_down_emacs): Fix last change.
Gerd Moellmann <gerd@gnu.org>
parents: 39035
diff changeset
2151 if (sig == 0 || sig == SIGTERM)
39035
217755d3b319 (shut_down_emacs): Don't call check_glyph_memory
Gerd Moellmann <gerd@gnu.org>
parents: 38458
diff changeset
2152 {
217755d3b319 (shut_down_emacs): Don't call check_glyph_memory
Gerd Moellmann <gerd@gnu.org>
parents: 38458
diff changeset
2153 check_glyph_memory ();
217755d3b319 (shut_down_emacs): Don't call check_glyph_memory
Gerd Moellmann <gerd@gnu.org>
parents: 38458
diff changeset
2154 check_message_stack ();
217755d3b319 (shut_down_emacs): Don't call check_glyph_memory
Gerd Moellmann <gerd@gnu.org>
parents: 38458
diff changeset
2155 }
25010
16ced12bd3aa (main): Call init_fns.
Gerd Moellmann <gerd@gnu.org>
parents: 24900
diff changeset
2156
20037
a4042bd1c038 (shut_down_emacs): Call `dos_cleanup'.
Eli Zaretskii <eliz@gnu.org>
parents: 19752
diff changeset
2157 #ifdef MSDOS
a4042bd1c038 (shut_down_emacs): Call `dos_cleanup'.
Eli Zaretskii <eliz@gnu.org>
parents: 19752
diff changeset
2158 dos_cleanup ();
a4042bd1c038 (shut_down_emacs): Call `dos_cleanup'.
Eli Zaretskii <eliz@gnu.org>
parents: 19752
diff changeset
2159 #endif
96675
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
2160
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
2161 #ifdef HAVE_NS
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
2162 ns_term_shutdown (sig);
d45acf0c8d23 merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 96602
diff changeset
2163 #endif
1774
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2164 }
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2165
04cd18603ec5 * emacs.c (shut_down_emacs): New function.
Jim Blandy <jimb@redhat.com>
parents: 1472
diff changeset
2166
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2167
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2168 #ifndef CANNOT_DUMP
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2169
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2170 DEFUN ("dump-emacs", Fdump_emacs, Sdump_emacs, 2, 2, 0,
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2171 doc: /* Dump current state of Emacs into executable file FILENAME.
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2172 Take symbols from SYMFILE (presumably the file you executed to run Emacs).
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2173 This is used in the file `loadup.el' when building Emacs.
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2174
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2175 You must run Emacs in batch mode in order to dump it. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109165
diff changeset
2176 (Lisp_Object filename, Lisp_Object symfile)
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2177 {
11076
9d2cb049844b (dump-emacs-data, dump-emacs): Declare my_edata as char array.
Richard M. Stallman <rms@gnu.org>
parents: 10902
diff changeset
2178 extern char my_edata[];
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2179 Lisp_Object tem;
18395
4b6ab0b6fd50 (Fdump_emacs): Bind command-line-processed to nil here.
Richard M. Stallman <rms@gnu.org>
parents: 18394
diff changeset
2180 Lisp_Object symbol;
46285
3f111801efb4 Rename BINDING_STACK_SIZE to SPECPDL_INDEX.
Juanma Barranquero <lekktu@gmail.com>
parents: 45555
diff changeset
2181 int count = SPECPDL_INDEX ();
39576
d2a8cced572f (fatal_error_signal_hook): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 39036
diff changeset
2182
d2a8cced572f (fatal_error_signal_hook): New variable.
Gerd Moellmann <gerd@gnu.org>
parents: 39036
diff changeset
2183 check_pure_size ();
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2184
18394
d249b1ae0a02 (Fdump_emacs): Error if not run in batch mode.
Richard M. Stallman <rms@gnu.org>
parents: 18062
diff changeset
2185 if (! noninteractive)
d249b1ae0a02 (Fdump_emacs): Error if not run in batch mode.
Richard M. Stallman <rms@gnu.org>
parents: 18062
diff changeset
2186 error ("Dumping Emacs works only in batch mode");
d249b1ae0a02 (Fdump_emacs): Error if not run in batch mode.
Richard M. Stallman <rms@gnu.org>
parents: 18062
diff changeset
2187
70921
77206b6b6ec5 (main, Fdump_emacs): Don't test __linux or __linux__.
Richard M. Stallman <rms@gnu.org>
parents: 69607
diff changeset
2188 #ifdef GNU_LINUX
57623
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
2189 if (heap_bss_diff > MAX_HEAP_BSS_DIFF)
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
2190 {
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
2191 fprintf (stderr, "**************************************************\n");
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
2192 fprintf (stderr, "Warning: Your system has a gap between BSS and the\n");
85527
166fdd1797fe (Fdump_emacs): Fix typo in message.
Juanma Barranquero <lekktu@gmail.com>
parents: 84829
diff changeset
2193 fprintf (stderr, "heap (%lu bytes). This usually means that exec-shield\n",
58018
4d47dbf04bed * emacs.c (Fdump_emacs): Only output warning on GNU/Linux.
Jan Djärv <jan.h.d@swipnet.se>
parents: 57996
diff changeset
2194 heap_bss_diff);
4d47dbf04bed * emacs.c (Fdump_emacs): Only output warning on GNU/Linux.
Jan Djärv <jan.h.d@swipnet.se>
parents: 57996
diff changeset
2195 fprintf (stderr, "or something similar is in effect. The dump may\n");
85527
166fdd1797fe (Fdump_emacs): Fix typo in message.
Juanma Barranquero <lekktu@gmail.com>
parents: 84829
diff changeset
2196 fprintf (stderr, "fail because of this. See the section about\n");
58018
4d47dbf04bed * emacs.c (Fdump_emacs): Only output warning on GNU/Linux.
Jan Djärv <jan.h.d@swipnet.se>
parents: 57996
diff changeset
2197 fprintf (stderr, "exec-shield in etc/PROBLEMS for more information.\n");
57623
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
2198 fprintf (stderr, "**************************************************\n");
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
2199 }
70921
77206b6b6ec5 (main, Fdump_emacs): Don't test __linux or __linux__.
Richard M. Stallman <rms@gnu.org>
parents: 69607
diff changeset
2200 #endif /* GNU_LINUX */
57623
1293d7f90911 * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
Jan Djärv <jan.h.d@swipnet.se>
parents: 56236
diff changeset
2201
18395
4b6ab0b6fd50 (Fdump_emacs): Bind command-line-processed to nil here.
Richard M. Stallman <rms@gnu.org>
parents: 18394
diff changeset
2202 /* Bind `command-line-processed' to nil before dumping,
4b6ab0b6fd50 (Fdump_emacs): Bind command-line-processed to nil here.
Richard M. Stallman <rms@gnu.org>
parents: 18394
diff changeset
2203 so that the dumped Emacs will process its command line
4b6ab0b6fd50 (Fdump_emacs): Bind command-line-processed to nil here.
Richard M. Stallman <rms@gnu.org>
parents: 18394
diff changeset
2204 and set up to work with X windows if appropriate. */
44163
2b5d4943e959 (Fdump_emacs): Fix a typo in "command-line-processed".
Eli Zaretskii <eliz@gnu.org>
parents: 44101
diff changeset
2205 symbol = intern ("command-line-processed");
18395
4b6ab0b6fd50 (Fdump_emacs): Bind command-line-processed to nil here.
Richard M. Stallman <rms@gnu.org>
parents: 18394
diff changeset
2206 specbind (symbol, Qnil);
4b6ab0b6fd50 (Fdump_emacs): Bind command-line-processed to nil here.
Richard M. Stallman <rms@gnu.org>
parents: 18394
diff changeset
2207
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40572
diff changeset
2208 CHECK_STRING (filename);
14072
d6f46c53f2aa (Fdump_emacs_data, Fdump_emacs): Harmonize arguments with documentation.
Erik Naggum <erik@naggum.no>
parents: 14035
diff changeset
2209 filename = Fexpand_file_name (filename, Qnil);
d6f46c53f2aa (Fdump_emacs_data, Fdump_emacs): Harmonize arguments with documentation.
Erik Naggum <erik@naggum.no>
parents: 14035
diff changeset
2210 if (!NILP (symfile))
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2211 {
40656
cdfd4d09b79a Update usage of CHECK_ macros (remove unused second argument).
Pavel Janík <Pavel@Janik.cz>
parents: 40572
diff changeset
2212 CHECK_STRING (symfile);
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46293
diff changeset
2213 if (SCHARS (symfile))
14072
d6f46c53f2aa (Fdump_emacs_data, Fdump_emacs): Harmonize arguments with documentation.
Erik Naggum <erik@naggum.no>
parents: 14035
diff changeset
2214 symfile = Fexpand_file_name (symfile, Qnil);
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2215 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2216
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2217 tem = Vpurify_flag;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2218 Vpurify_flag = Qnil;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2219
14202
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
2220 #ifdef HAVE_TZSET
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
2221 set_time_zone_rule (dump_tz);
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
2222 #ifndef LOCALTIME_CACHE
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
2223 /* Force a tz reload, since set_time_zone_rule doesn't. */
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
2224 tzset ();
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
2225 #endif
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
2226 #endif
7acafb848e80 (Fdump_emacs): If HAVE_TZSET and not
Richard M. Stallman <rms@gnu.org>
parents: 14127
diff changeset
2227
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2228 fflush (stdout);
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2229 /* Tell malloc where start of impure now is. */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2230 /* Also arrange for warnings when nearly out of space. */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2231 #ifndef SYSTEM_MALLOC
9788
cfc5a79852e8 (Fdump_emacs): Don't reset the data start address by
Richard M. Stallman <rms@gnu.org>
parents: 9572
diff changeset
2232 #ifndef WINDOWSNT
cfc5a79852e8 (Fdump_emacs): Don't reset the data start address by
Richard M. Stallman <rms@gnu.org>
parents: 9572
diff changeset
2233 /* On Windows, this was done before dumping, and that once suffices.
cfc5a79852e8 (Fdump_emacs): Don't reset the data start address by
Richard M. Stallman <rms@gnu.org>
parents: 9572
diff changeset
2234 Meanwhile, my_edata is not valid on Windows. */
11756
7d21f64d2c0e (Fdump_emacs): Don't use & before my_edata.
Richard M. Stallman <rms@gnu.org>
parents: 11720
diff changeset
2235 memory_warnings (my_edata, malloc_warning);
9788
cfc5a79852e8 (Fdump_emacs): Don't reset the data start address by
Richard M. Stallman <rms@gnu.org>
parents: 9572
diff changeset
2236 #endif /* not WINDOWSNT */
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2237 #endif
58895
4406d551c5c6 (main, Fdump_emacs): Don't touch malloc hooks if SYNC_INPUT.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 58832
diff changeset
2238 #if !defined (SYSTEM_MALLOC) && defined (HAVE_GTK_AND_PTHREAD) && !defined SYNC_INPUT
58818
f8cddae7d959 * gtkutil.c: Include signal.h and syssignal.h.
Jan Djärv <jan.h.d@swipnet.se>
parents: 58632
diff changeset
2239 /* Pthread may call malloc before main, and then we will get an endless
f8cddae7d959 * gtkutil.c: Include signal.h and syssignal.h.
Jan Djärv <jan.h.d@swipnet.se>
parents: 58632
diff changeset
2240 loop, because pthread_self (see alloc.c) calls malloc the first time
f8cddae7d959 * gtkutil.c: Include signal.h and syssignal.h.
Jan Djärv <jan.h.d@swipnet.se>
parents: 58632
diff changeset
2241 it is called on some systems. */
f8cddae7d959 * gtkutil.c: Include signal.h and syssignal.h.
Jan Djärv <jan.h.d@swipnet.se>
parents: 58632
diff changeset
2242 reset_malloc_hooks ();
f8cddae7d959 * gtkutil.c: Include signal.h and syssignal.h.
Jan Djärv <jan.h.d@swipnet.se>
parents: 58632
diff changeset
2243 #endif
17346
f29f51d8a21f (malloc_get_state, malloc_set_state): New declarations.
Richard M. Stallman <rms@gnu.org>
parents: 17312
diff changeset
2244 #ifdef DOUG_LEA_MALLOC
f29f51d8a21f (malloc_get_state, malloc_set_state): New declarations.
Richard M. Stallman <rms@gnu.org>
parents: 17312
diff changeset
2245 malloc_state_ptr = malloc_get_state ();
f29f51d8a21f (malloc_get_state, malloc_set_state): New declarations.
Richard M. Stallman <rms@gnu.org>
parents: 17312
diff changeset
2246 #endif
31413
c3b1fc2b0d11 (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
Gerd Moellmann <gerd@gnu.org>
parents: 31336
diff changeset
2247
31602
a42e23d2b9cc Change conditional compilation on REL_ALLOC_MMAP to
Gerd Moellmann <gerd@gnu.org>
parents: 31413
diff changeset
2248 #ifdef USE_MMAP_FOR_BUFFERS
31413
c3b1fc2b0d11 (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
Gerd Moellmann <gerd@gnu.org>
parents: 31336
diff changeset
2249 mmap_set_vars (0);
c3b1fc2b0d11 (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
Gerd Moellmann <gerd@gnu.org>
parents: 31336
diff changeset
2250 #endif
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46293
diff changeset
2251 unexec (SDATA (filename),
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46293
diff changeset
2252 !NILP (symfile) ? SDATA (symfile) : 0, my_edata, 0, 0);
31602
a42e23d2b9cc Change conditional compilation on REL_ALLOC_MMAP to
Gerd Moellmann <gerd@gnu.org>
parents: 31413
diff changeset
2253 #ifdef USE_MMAP_FOR_BUFFERS
31413
c3b1fc2b0d11 (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
Gerd Moellmann <gerd@gnu.org>
parents: 31336
diff changeset
2254 mmap_set_vars (1);
c3b1fc2b0d11 (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
Gerd Moellmann <gerd@gnu.org>
parents: 31336
diff changeset
2255 #endif
17346
f29f51d8a21f (malloc_get_state, malloc_set_state): New declarations.
Richard M. Stallman <rms@gnu.org>
parents: 17312
diff changeset
2256 #ifdef DOUG_LEA_MALLOC
f29f51d8a21f (malloc_get_state, malloc_set_state): New declarations.
Richard M. Stallman <rms@gnu.org>
parents: 17312
diff changeset
2257 free (malloc_state_ptr);
f29f51d8a21f (malloc_get_state, malloc_set_state): New declarations.
Richard M. Stallman <rms@gnu.org>
parents: 17312
diff changeset
2258 #endif
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2259
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2260 Vpurify_flag = tem;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2261
18395
4b6ab0b6fd50 (Fdump_emacs): Bind command-line-processed to nil here.
Richard M. Stallman <rms@gnu.org>
parents: 18394
diff changeset
2262 return unbind_to (count, Qnil);
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2263 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2264
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2265 #endif /* not CANNOT_DUMP */
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2266
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2267 #if HAVE_SETLOCALE
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2268 /* Recover from setlocale (LC_ALL, ""). */
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2269 void
109364
89a16701cde1 Convert old-style definitions
Andreas Schwab <schwab@linux-m68k.org>
parents: 109361
diff changeset
2270 fixup_locale (void)
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2271 {
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2272 /* The Emacs Lisp reader needs LC_NUMERIC to be "C",
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2273 so that numbers are read and printed properly for Emacs Lisp. */
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2274 setlocale (LC_NUMERIC, "C");
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2275 }
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2276
26590
301daf47e723 * emacs.c (fixup_locale): Don't bother to record initial locale.
Paul Eggert <eggert@twinsun.com>
parents: 26567
diff changeset
2277 /* Set system locale CATEGORY, with previous locale *PLOCALE, to
301daf47e723 * emacs.c (fixup_locale): Don't bother to record initial locale.
Paul Eggert <eggert@twinsun.com>
parents: 26567
diff changeset
2278 DESIRED_LOCALE. */
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2279 static void
109139
c25c24812fb1 Convert declarations or definitions to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109100
diff changeset
2280 synchronize_locale (int category, Lisp_Object *plocale, Lisp_Object desired_locale)
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2281 {
26590
301daf47e723 * emacs.c (fixup_locale): Don't bother to record initial locale.
Paul Eggert <eggert@twinsun.com>
parents: 26567
diff changeset
2282 if (! EQ (*plocale, desired_locale))
301daf47e723 * emacs.c (fixup_locale): Don't bother to record initial locale.
Paul Eggert <eggert@twinsun.com>
parents: 26567
diff changeset
2283 {
301daf47e723 * emacs.c (fixup_locale): Don't bother to record initial locale.
Paul Eggert <eggert@twinsun.com>
parents: 26567
diff changeset
2284 *plocale = desired_locale;
301daf47e723 * emacs.c (fixup_locale): Don't bother to record initial locale.
Paul Eggert <eggert@twinsun.com>
parents: 26567
diff changeset
2285 setlocale (category, (STRINGP (desired_locale)
57996
34078c6df297 Whitespace fixup.
Andreas Schwab <schwab@suse.de>
parents: 57876
diff changeset
2286 ? (char *) SDATA (desired_locale)
26590
301daf47e723 * emacs.c (fixup_locale): Don't bother to record initial locale.
Paul Eggert <eggert@twinsun.com>
parents: 26567
diff changeset
2287 : ""));
301daf47e723 * emacs.c (fixup_locale): Don't bother to record initial locale.
Paul Eggert <eggert@twinsun.com>
parents: 26567
diff changeset
2288 }
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2289 }
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2290
26526
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
2291 /* Set system time locale to match Vsystem_time_locale, if possible. */
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2292 void
109364
89a16701cde1 Convert old-style definitions
Andreas Schwab <schwab@linux-m68k.org>
parents: 109361
diff changeset
2293 synchronize_system_time_locale (void)
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2294 {
26526
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
2295 synchronize_locale (LC_TIME, &Vprevious_system_time_locale,
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
2296 Vsystem_time_locale);
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2297 }
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2298
26526
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
2299 /* Set system messages locale to match Vsystem_messages_locale, if
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
2300 possible. */
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2301 void
109364
89a16701cde1 Convert old-style definitions
Andreas Schwab <schwab@linux-m68k.org>
parents: 109361
diff changeset
2302 synchronize_system_messages_locale (void)
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2303 {
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2304 #ifdef LC_MESSAGES
26526
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
2305 synchronize_locale (LC_MESSAGES, &Vprevious_system_messages_locale,
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
2306 Vsystem_messages_locale);
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2307 #endif
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2308 }
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2309 #endif /* HAVE_SETLOCALE */
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2310
2649
3a9fb5d6d259 * emacs.c (SEPCHAR): Instead of defining this to be ',' on VMS and
Jim Blandy <jimb@redhat.com>
parents: 2439
diff changeset
2311 #ifndef SEPCHAR
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2312 #define SEPCHAR ':'
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2313 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2314
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2315 Lisp_Object
109313
e856a274549b Constify functions taking char *
Andreas Schwab <schwab@linux-m68k.org>
parents: 109179
diff changeset
2316 decode_env_path (const char *evarname, const char *defalt)
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2317 {
109313
e856a274549b Constify functions taking char *
Andreas Schwab <schwab@linux-m68k.org>
parents: 109179
diff changeset
2318 const char *path, *p;
16386
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
2319 Lisp_Object lpath, element, tem;
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2320
505
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
2321 /* 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
2322 to initialize variables when Emacs starts up, and isn't called
d5b34c57b5e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 420
diff changeset
2323 after that. */
638
40b255f55df3 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 624
diff changeset
2324 if (evarname != 0)
109313
e856a274549b Constify functions taking char *
Andreas Schwab <schwab@linux-m68k.org>
parents: 109179
diff changeset
2325 path = getenv (evarname);
638
40b255f55df3 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 624
diff changeset
2326 else
40b255f55df3 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 624
diff changeset
2327 path = 0;
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2328 if (!path)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2329 path = defalt;
18514
38e3a189ed1d (decode_env_path): Ensure path elements use proper directory separator.
Richard M. Stallman <rms@gnu.org>
parents: 18395
diff changeset
2330 #ifdef DOS_NT
38e3a189ed1d (decode_env_path): Ensure path elements use proper directory separator.
Richard M. Stallman <rms@gnu.org>
parents: 18395
diff changeset
2331 /* Ensure values from the environment use the proper directory separator. */
38e3a189ed1d (decode_env_path): Ensure path elements use proper directory separator.
Richard M. Stallman <rms@gnu.org>
parents: 18395
diff changeset
2332 if (path)
38e3a189ed1d (decode_env_path): Ensure path elements use proper directory separator.
Richard M. Stallman <rms@gnu.org>
parents: 18395
diff changeset
2333 {
109313
e856a274549b Constify functions taking char *
Andreas Schwab <schwab@linux-m68k.org>
parents: 109179
diff changeset
2334 char *path_copy = alloca (strlen (path) + 1);
e856a274549b Constify functions taking char *
Andreas Schwab <schwab@linux-m68k.org>
parents: 109179
diff changeset
2335 strcpy (path_copy, path);
e856a274549b Constify functions taking char *
Andreas Schwab <schwab@linux-m68k.org>
parents: 109179
diff changeset
2336 dostounix_filename (path_copy);
e856a274549b Constify functions taking char *
Andreas Schwab <schwab@linux-m68k.org>
parents: 109179
diff changeset
2337 path = path_copy;
18514
38e3a189ed1d (decode_env_path): Ensure path elements use proper directory separator.
Richard M. Stallman <rms@gnu.org>
parents: 18395
diff changeset
2338 }
38e3a189ed1d (decode_env_path): Ensure path elements use proper directory separator.
Richard M. Stallman <rms@gnu.org>
parents: 18395
diff changeset
2339 #endif
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2340 lpath = Qnil;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2341 while (1)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2342 {
109315
8f3464b85afb Use strchr, strrchr instead of index, rindex
Andreas Schwab <schwab@linux-m68k.org>
parents: 109313
diff changeset
2343 p = strchr (path, SEPCHAR);
109313
e856a274549b Constify functions taking char *
Andreas Schwab <schwab@linux-m68k.org>
parents: 109179
diff changeset
2344 if (!p)
e856a274549b Constify functions taking char *
Andreas Schwab <schwab@linux-m68k.org>
parents: 109179
diff changeset
2345 p = path + strlen (path);
16386
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
2346 element = (p - path ? make_string (path, p - path)
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
2347 : build_string ("."));
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
2348
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
2349 /* Add /: to the front of the name
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
2350 if it would otherwise be treated as magic. */
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
2351 tem = Ffind_file_name_handler (element, Qt);
47019
8ec5fd232f26 (decode_env_path): Don't add /: if file name handler
Richard M. Stallman <rms@gnu.org>
parents: 46916
diff changeset
2352
8ec5fd232f26 (decode_env_path): Don't add /: if file name handler
Richard M. Stallman <rms@gnu.org>
parents: 46916
diff changeset
2353 /* However, if the handler says "I'm safe",
8ec5fd232f26 (decode_env_path): Don't add /: if file name handler
Richard M. Stallman <rms@gnu.org>
parents: 46916
diff changeset
2354 don't bother adding /:. */
8ec5fd232f26 (decode_env_path): Don't add /: if file name handler
Richard M. Stallman <rms@gnu.org>
parents: 46916
diff changeset
2355 if (SYMBOLP (tem))
8ec5fd232f26 (decode_env_path): Don't add /: if file name handler
Richard M. Stallman <rms@gnu.org>
parents: 46916
diff changeset
2356 {
8ec5fd232f26 (decode_env_path): Don't add /: if file name handler
Richard M. Stallman <rms@gnu.org>
parents: 46916
diff changeset
2357 Lisp_Object prop;
8ec5fd232f26 (decode_env_path): Don't add /: if file name handler
Richard M. Stallman <rms@gnu.org>
parents: 46916
diff changeset
2358 prop = Fget (tem, intern ("safe-magic"));
8ec5fd232f26 (decode_env_path): Don't add /: if file name handler
Richard M. Stallman <rms@gnu.org>
parents: 46916
diff changeset
2359 if (! NILP (prop))
8ec5fd232f26 (decode_env_path): Don't add /: if file name handler
Richard M. Stallman <rms@gnu.org>
parents: 46916
diff changeset
2360 tem = Qnil;
8ec5fd232f26 (decode_env_path): Don't add /: if file name handler
Richard M. Stallman <rms@gnu.org>
parents: 46916
diff changeset
2361 }
8ec5fd232f26 (decode_env_path): Don't add /: if file name handler
Richard M. Stallman <rms@gnu.org>
parents: 46916
diff changeset
2362
16386
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
2363 if (! NILP (tem))
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
2364 element = concat2 (build_string ("/:"), element);
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
2365
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
2366 lpath = Fcons (element, lpath);
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2367 if (*p)
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2368 path = p + 1;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2369 else
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2370 break;
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2371 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2372 return Fnreverse (lpath);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2373 }
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2374
98290
90bc7e356363 * emacs.c (standard_args): Add --daemon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97644
diff changeset
2375 DEFUN ("daemonp", Fdaemonp, Sdaemonp, 0, 0, 0,
99158
d1d986962044 * emacs.c (daemon_name): New variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 99148
diff changeset
2376 doc: /* Return non-nil if the current emacs process is a daemon.
d1d986962044 * emacs.c (daemon_name): New variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 99148
diff changeset
2377 If the daemon was given a name argument, return that name. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109165
diff changeset
2378 (void)
98290
90bc7e356363 * emacs.c (standard_args): Add --daemon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97644
diff changeset
2379 {
99178
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
2380 if (IS_DAEMON)
99158
d1d986962044 * emacs.c (daemon_name): New variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 99148
diff changeset
2381 if (daemon_name)
d1d986962044 * emacs.c (daemon_name): New variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 99148
diff changeset
2382 return build_string (daemon_name);
d1d986962044 * emacs.c (daemon_name): New variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 99148
diff changeset
2383 else
d1d986962044 * emacs.c (daemon_name): New variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 99148
diff changeset
2384 return Qt;
d1d986962044 * emacs.c (daemon_name): New variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 99148
diff changeset
2385 else
d1d986962044 * emacs.c (daemon_name): New variable.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 99148
diff changeset
2386 return Qnil;
98290
90bc7e356363 * emacs.c (standard_args): Add --daemon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97644
diff changeset
2387 }
90bc7e356363 * emacs.c (standard_args): Add --daemon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97644
diff changeset
2388
99148
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2389 DEFUN ("daemon-initialized", Fdaemon_initialized, Sdaemon_initialized, 0, 0, 0,
99178
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
2390 doc: /* Mark the Emacs daemon as being initialized.
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
2391 This finishes the daemonization process by doing the other half of detaching
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
2392 from the parent process and its tty file descriptors. */)
109179
8cfee7d2955f Convert DEFUNs to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 109165
diff changeset
2393 (void)
99148
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2394 {
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2395 int nfd;
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2396
99178
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
2397 if (!IS_DAEMON)
99148
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2398 error ("This function can only be called if emacs is run as a daemon");
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2399
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2400 if (daemon_pipe[1] < 0)
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2401 error ("The daemon has already been initialized");
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2402
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2403 if (NILP (Vafter_init_time))
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2404 error ("This function can only be called after loading the init files");
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2405
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2406 /* Get rid of stdin, stdout and stderr. */
99226
9065d5721384 (Fdaemon_initialized): Initialize nfd.
Chong Yidong <cyd@stupidchicken.com>
parents: 99182
diff changeset
2407 nfd = open ("/dev/null", O_RDWR);
99148
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2408 dup2 (nfd, 0);
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2409 dup2 (nfd, 1);
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2410 dup2 (nfd, 2);
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2411 close (nfd);
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2412
99178
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
2413 /* Closing the pipe will notify the parent that it can exit.
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
2414 FIXME: In case some other process inherited the pipe, closing it here
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
2415 won't notify the parent because it's still open elsewhere, so we
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
2416 additionally send a byte, just to make sure the parent really exits.
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
2417 Instead, we should probably close the pipe in start-process and
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
2418 call-process to make sure the pipe is never inherited by
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
2419 subprocesses. */
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
2420 write (daemon_pipe[1], "\n", 1);
99148
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2421 close (daemon_pipe[1]);
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2422 /* Set it to an invalid value so we know we've already run this function. */
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2423 daemon_pipe[1] = -1;
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2424 return Qt;
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2425 }
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2426
21514
fa9ff387d260 Fix -Wimplicit warnings.
Andreas Schwab <schwab@suse.de>
parents: 21449
diff changeset
2427 void
109364
89a16701cde1 Convert old-style definitions
Andreas Schwab <schwab@linux-m68k.org>
parents: 109361
diff changeset
2428 syms_of_emacs (void)
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2429 {
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105872
diff changeset
2430 Qfile_name_handler_alist = intern_c_string ("file-name-handler-alist");
16386
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
2431 staticpro (&Qfile_name_handler_alist);
e7e295c6add2 (decode_env_path): Add /: to dir names that could be magic.
Richard M. Stallman <rms@gnu.org>
parents: 16278
diff changeset
2432
3187
0790b5563a66 (syms_of_emacs) [CANNOT_DUMP]: Don't defsubr Sdump_emacs*.
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
2433 #ifndef CANNOT_DUMP
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2434 defsubr (&Sdump_emacs);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2435 #endif
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2436
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2437 defsubr (&Skill_emacs);
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2438
2279
012b04efa234 * emacs.c (Finvocation_name): New function.
Jim Blandy <jimb@redhat.com>
parents: 2118
diff changeset
2439 defsubr (&Sinvocation_name);
4484
c589c71324dd (Vinvocation_directory): New var.
Richard M. Stallman <rms@gnu.org>
parents: 4303
diff changeset
2440 defsubr (&Sinvocation_directory);
98290
90bc7e356363 * emacs.c (standard_args): Add --daemon.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 97644
diff changeset
2441 defsubr (&Sdaemonp);
99148
638063658f67 * startup.el (command-line): Call daemon-initialized after
Dan Nicolaescu <dann@ics.uci.edu>
parents: 98957
diff changeset
2442 defsubr (&Sdaemon_initialized);
2279
012b04efa234 * emacs.c (Finvocation_name): New function.
Jim Blandy <jimb@redhat.com>
parents: 2118
diff changeset
2443
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2444 DEFVAR_LISP ("command-line-args", &Vcommand_line_args,
47430
612929500d46 (syms_of_emacs) <command-line-args>: Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 47077
diff changeset
2445 doc: /* Args passed by shell to Emacs, as a list of strings.
612929500d46 (syms_of_emacs) <command-line-args>: Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 47077
diff changeset
2446 Many arguments are deleted from the list as they are processed. */);
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2447
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2448 DEFVAR_LISP ("system-type", &Vsystem_type,
104370
6d088d4b6e1f (system-type): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 104312
diff changeset
2449 doc: /* The value is a symbol indicating the type of operating system you are using.
62304
759e02011c0d (syms_of_emacs): Fix doc string for system-type.
Nick Roberts <nickrob@snap.net.nz>
parents: 62285
diff changeset
2450 Special values:
104370
6d088d4b6e1f (system-type): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 104312
diff changeset
2451 `gnu' compiled for a GNU Hurd system.
6d088d4b6e1f (system-type): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 104312
diff changeset
2452 `gnu/linux' compiled for a GNU/Linux system.
6d088d4b6e1f (system-type): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 104312
diff changeset
2453 `gnu/kfreebsd' compiled for a GNU system with a FreeBSD kernel.
6d088d4b6e1f (system-type): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 104312
diff changeset
2454 `darwin' compiled for Darwin (GNU-Darwin, Mac OS X, ...).
6d088d4b6e1f (system-type): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 104312
diff changeset
2455 `ms-dos' compiled as an MS-DOS application.
6d088d4b6e1f (system-type): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 104312
diff changeset
2456 `windows-nt' compiled as a native W32 application.
6d088d4b6e1f (system-type): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 104312
diff changeset
2457 `cygwin' compiled using the Cygwin library.
6d088d4b6e1f (system-type): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 104312
diff changeset
2458 Anything else (in Emacs 23.1, the possibilities are: aix, berkeley-unix,
6d088d4b6e1f (system-type): Doc fix.
Glenn Morris <rgm@gnu.org>
parents: 104312
diff changeset
2459 hpux, irix, lynxos 3.0.1, usg-unix-v) indicates some sort of Unix system. */);
105877
21bdda3ded62 * xterm.c (syms_of_xterm):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 105872
diff changeset
2460 Vsystem_type = intern_c_string (SYSTEM_TYPE);
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2461
5236
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
2462 DEFVAR_LISP ("system-configuration", &Vsystem_configuration,
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2463 doc: /* Value is string indicating configuration Emacs was built for.
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2464 On MS-Windows, the value reflects the OS flavor and version on which
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2465 Emacs is running. */);
7538
c4d128d26fc9 (syms_of_emacs): EMACS_CONFIGURATION renamed from CONFIGURATION.
Richard M. Stallman <rms@gnu.org>
parents: 7480
diff changeset
2466 Vsystem_configuration = build_string (EMACS_CONFIGURATION);
5236
3be757b02da0 (syms_of_emacs): Define Lisp var system-configuration.
Richard M. Stallman <rms@gnu.org>
parents: 5197
diff changeset
2467
8843
4fd9700b07a7 (Vsystem_configuration_options): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 8815
diff changeset
2468 DEFVAR_LISP ("system-configuration-options", &Vsystem_configuration_options,
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2469 doc: /* String containing the configuration options Emacs was built with. */);
8843
4fd9700b07a7 (Vsystem_configuration_options): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 8815
diff changeset
2470 Vsystem_configuration_options = build_string (EMACS_CONFIG_OPTIONS);
4fd9700b07a7 (Vsystem_configuration_options): New variable.
Karl Heuer <kwzh@gnu.org>
parents: 8815
diff changeset
2471
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2472 DEFVAR_BOOL ("noninteractive", &noninteractive1,
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2473 doc: /* Non-nil means Emacs is running without interactive terminal. */);
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 638
diff changeset
2474
1043
ee6f647ac103 * emacs.c: Incude "systty.h", not "systerm.h".
Jim Blandy <jimb@redhat.com>
parents: 1004
diff changeset
2475 DEFVAR_LISP ("kill-emacs-hook", &Vkill_emacs_hook,
79240
0ac6348332be (syms_of_emacs) <kill-emacs-hook>: Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 78920
diff changeset
2476 doc: /* Hook to be run when `kill-emacs' is called.
47839
8d4ba9addc8e *** empty log message ***
Markus Rost <rost@math.uni-bielefeld.de>
parents: 47430
diff changeset
2477 Since `kill-emacs' may be invoked when the terminal is disconnected (or
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2478 in other similar situations), functions placed on this hook should not
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2479 expect to be able to interact with the user. To ask for confirmation,
47839
8d4ba9addc8e *** empty log message ***
Markus Rost <rost@math.uni-bielefeld.de>
parents: 47430
diff changeset
2480 see `kill-emacs-query-functions' instead.
8d4ba9addc8e *** empty log message ***
Markus Rost <rost@math.uni-bielefeld.de>
parents: 47430
diff changeset
2481
8d4ba9addc8e *** empty log message ***
Markus Rost <rost@math.uni-bielefeld.de>
parents: 47430
diff changeset
2482 The hook is not run in batch mode, i.e., if `noninteractive' is non-nil. */);
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 638
diff changeset
2483 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
2484
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
2485 DEFVAR_INT ("emacs-priority", &emacs_priority,
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2486 doc: /* Priority for Emacs to run at.
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2487 This value is effective only if set before Emacs is dumped,
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2488 and only if the Emacs executable is installed with setuid to permit
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2489 it to change priority. (Emacs sets its uid back to the real uid.)
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2490 Currently, you need to define SET_EMACS_PRIORITY in `config.h'
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2491 before you compile Emacs, to enable the code for this feature. */);
21637
0bd76a1c9172 (syms_of_emacs): Fix patching error in previous change.
Richard M. Stallman <rms@gnu.org>
parents: 21622
diff changeset
2492 emacs_priority = 0;
21622
340ce8f170ef (Vpath_separator): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents: 21585
diff changeset
2493
340ce8f170ef (Vpath_separator): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents: 21585
diff changeset
2494 DEFVAR_LISP ("path-separator", &Vpath_separator,
75168
77ea2237b3ac (syms_of_emacs) <path-separator>: Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 74747
diff changeset
2495 doc: /* String containing the character that separates directories in
77ea2237b3ac (syms_of_emacs) <path-separator>: Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents: 74747
diff changeset
2496 search paths, such as PATH and other similar environment variables. */);
21622
340ce8f170ef (Vpath_separator): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents: 21585
diff changeset
2497 {
340ce8f170ef (Vpath_separator): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents: 21585
diff changeset
2498 char c = SEPCHAR;
340ce8f170ef (Vpath_separator): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents: 21585
diff changeset
2499 Vpath_separator = make_string (&c, 1);
340ce8f170ef (Vpath_separator): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents: 21585
diff changeset
2500 }
2279
012b04efa234 * emacs.c (Finvocation_name): New function.
Jim Blandy <jimb@redhat.com>
parents: 2118
diff changeset
2501
7003
176bb79caecf (init_cmdargs): Check only for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 7002
diff changeset
2502 DEFVAR_LISP ("invocation-name", &Vinvocation_name,
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2503 doc: /* The program name that was used to run Emacs.
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2504 Any directory names are omitted. */);
7003
176bb79caecf (init_cmdargs): Check only for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 7002
diff changeset
2505
176bb79caecf (init_cmdargs): Check only for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 7002
diff changeset
2506 DEFVAR_LISP ("invocation-directory", &Vinvocation_directory,
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2507 doc: /* The directory in which the Emacs executable was found, to run it.
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2508 The value is nil if that directory's name is not known. */);
6428
633b2d7d12df (syms_of_emacs): Don't initialize Vinstallation_name
Richard M. Stallman <rms@gnu.org>
parents: 6210
diff changeset
2509
7003
176bb79caecf (init_cmdargs): Check only for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 7002
diff changeset
2510 DEFVAR_LISP ("installation-directory", &Vinstallation_directory,
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2511 doc: /* A directory within which to look for the `lib-src' and `etc' directories.
79266
018746a896bb (syms_of_emacs) <installation-directory>: Reflow docstring.
Richard M. Stallman <rms@gnu.org>
parents: 79240
diff changeset
2512 This is non-nil when we can't find those directories in their standard
018746a896bb (syms_of_emacs) <installation-directory>: Reflow docstring.
Richard M. Stallman <rms@gnu.org>
parents: 79240
diff changeset
2513 installed locations, but we can find them near where the Emacs executable
018746a896bb (syms_of_emacs) <installation-directory>: Reflow docstring.
Richard M. Stallman <rms@gnu.org>
parents: 79240
diff changeset
2514 was found. */);
7003
176bb79caecf (init_cmdargs): Check only for etc and lib-src subdirs
Richard M. Stallman <rms@gnu.org>
parents: 7002
diff changeset
2515 Vinstallation_directory = Qnil;
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2516
26526
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
2517 DEFVAR_LISP ("system-messages-locale", &Vsystem_messages_locale,
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2518 doc: /* System locale for messages. */);
26526
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
2519 Vsystem_messages_locale = Qnil;
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2520
26526
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
2521 DEFVAR_LISP ("previous-system-messages-locale",
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2522 &Vprevious_system_messages_locale,
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2523 doc: /* Most recently used system locale for messages. */);
26526
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
2524 Vprevious_system_messages_locale = Qnil;
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2525
26526
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
2526 DEFVAR_LISP ("system-time-locale", &Vsystem_time_locale,
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2527 doc: /* System locale for time. */);
26526
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
2528 Vsystem_time_locale = Qnil;
26088
b7aa6ac26872 Add support for large files, 64-bit Solaris, system locale codings.
Paul Eggert <eggert@twinsun.com>
parents: 25746
diff changeset
2529
26526
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
2530 DEFVAR_LISP ("previous-system-time-locale", &Vprevious_system_time_locale,
40372
72f4688f560f Fix typos in comments.
Pavel Janík <Pavel@Janik.cz>
parents: 39812
diff changeset
2531 doc: /* Most recently used system locale for time. */);
26526
b7438760079b * callproc.c (strerror): Remove decl.
Paul Eggert <eggert@twinsun.com>
parents: 26404
diff changeset
2532 Vprevious_system_time_locale = Qnil;
98544
bc9970afd5be (Vbefore_init_time, Vafter_init_time): Moved from startup.el.
Chong Yidong <cyd@stupidchicken.com>
parents: 98472
diff changeset
2533
bc9970afd5be (Vbefore_init_time, Vafter_init_time): Moved from startup.el.
Chong Yidong <cyd@stupidchicken.com>
parents: 98472
diff changeset
2534 DEFVAR_LISP ("before-init-time", &Vbefore_init_time,
bc9970afd5be (Vbefore_init_time, Vafter_init_time): Moved from startup.el.
Chong Yidong <cyd@stupidchicken.com>
parents: 98472
diff changeset
2535 doc: /* Value of `current-time' before Emacs begins initialization. */);
bc9970afd5be (Vbefore_init_time, Vafter_init_time): Moved from startup.el.
Chong Yidong <cyd@stupidchicken.com>
parents: 98472
diff changeset
2536 Vbefore_init_time = Qnil;
bc9970afd5be (Vbefore_init_time, Vafter_init_time): Moved from startup.el.
Chong Yidong <cyd@stupidchicken.com>
parents: 98472
diff changeset
2537
bc9970afd5be (Vbefore_init_time, Vafter_init_time): Moved from startup.el.
Chong Yidong <cyd@stupidchicken.com>
parents: 98472
diff changeset
2538 DEFVAR_LISP ("after-init-time", &Vafter_init_time,
bc9970afd5be (Vbefore_init_time, Vafter_init_time): Moved from startup.el.
Chong Yidong <cyd@stupidchicken.com>
parents: 98472
diff changeset
2539 doc: /* Value of `current-time' after loading the init files.
bc9970afd5be (Vbefore_init_time, Vafter_init_time): Moved from startup.el.
Chong Yidong <cyd@stupidchicken.com>
parents: 98472
diff changeset
2540 This is nil during initialization. */);
bc9970afd5be (Vbefore_init_time, Vafter_init_time): Moved from startup.el.
Chong Yidong <cyd@stupidchicken.com>
parents: 98472
diff changeset
2541 Vafter_init_time = Qnil;
99178
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
2542
105069
4cbb223d0b1c The --quick command line option now ignores X resources and Registry settings.
Juanma Barranquero <lekktu@gmail.com>
parents: 104698
diff changeset
2543 DEFVAR_BOOL ("inhibit-x-resources", &inhibit_x_resources,
105081
28ad66a103d9 (inhibit_x_resources): Update doc string for NS. (main) [HAVE_NS]: Don't process --no-init-file option. Remove legacy code for -NXHost.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents: 105069
diff changeset
2544 doc: /* If non-nil, X resources, Windows Registry settings, and NS defaults are not used. */);
105069
4cbb223d0b1c The --quick command line option now ignores X resources and Registry settings.
Juanma Barranquero <lekktu@gmail.com>
parents: 104698
diff changeset
2545 inhibit_x_resources = 0;
4cbb223d0b1c The --quick command line option now ignores X resources and Registry settings.
Juanma Barranquero <lekktu@gmail.com>
parents: 104698
diff changeset
2546
108601
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
2547 DEFVAR_LISP ("emacs-copyright", &Vemacs_copyright,
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
2548 doc: /* Short copyright string for this version of Emacs. */);
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
2549 Vemacs_copyright = build_string (emacs_copyright);
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
2550
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
2551 DEFVAR_LISP ("emacs-version", &Vemacs_version,
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
2552 doc: /* Version numbers of this version of Emacs. */);
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
2553 Vemacs_version = build_string (emacs_version);
786c4a4a3817 Handle --version reasonably in CANNOT_DUMP configuration.
Ken Raeburn <raeburn@raeburn.org>
parents: 108272
diff changeset
2554
99178
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
2555 /* Make sure IS_DAEMON starts up as false. */
8af0a96bf7da * xdisp.c (pos_visible_p, redisplay_internal, message3_nolog)
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 99158
diff changeset
2556 daemon_pipe[1] = 0;
284
03e467a3d92a Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2557 }
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51125
diff changeset
2558
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51125
diff changeset
2559 /* arch-tag: 7bfd356a-c720-4612-8ab6-aa4222931c2e
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51125
diff changeset
2560 (do not change this comment) */