#define O_RDWR 2
#endif
-extern void malloc_warning ();
-extern void set_time_zone_rule ();
-extern char *index ();
+#ifdef HAVE_SETPGID
+#if !defined (USG) || defined (BSD_PGRPS)
+#undef setpgrp
+#define setpgrp setpgid
+#endif
+#endif
+
+extern void malloc_warning P_ ((char *));
+extern void set_time_zone_rule P_ ((char *));
+#ifdef HAVE_INDEX
+extern char *index P_ ((const char *, int));
+#endif
/* Make these values available in GDB, which doesn't see macros. */
--iconic start Emacs in iconified state\n\
--icon-type, -i use picture of gnu for Emacs icon\n\
--internal-border, -ib WIDTH width between text and main border\n\
+--line-spacing, -lsp PIXELS additional space to put between lines\n\
--mouse-color, -ms COLOR mouse cursor color in Emacs window\n\
--name NAME title of main Emacs window\n\
--reverse-video, -r, -rv switch foreground and background\n\
{
struct input_event buf;
- buf.kind = user_signal;
- buf.code = 0;
+ bzero (&buf, sizeof buf);
+ buf.kind = USER_SIGNAL_EVENT;
buf.frame_or_window = selected_frame;
- buf.modifiers = 0;
- buf.timestamp = 0;
kbd_buffer_store_event (&buf);
}
{
struct input_event buf;
- buf.kind = user_signal;
+ bzero (&buf, sizeof buf);
+ buf.kind = USER_SIGNAL_EVENT;
buf.code = 1;
buf.frame_or_window = selected_frame;
- buf.modifiers = 0;
- buf.timestamp = 0;
kbd_buffer_store_event (&buf);
}
#endif /* SIGUSR2 */
-/* Handle bus errors, illegal instruction, etc. */
+/* Handle bus errors, invalid instruction, etc. */
SIGTYPE
fatal_error_signal (sig)
int sig;
char **valptr;
int *skipptr;
{
- char *p;
+ char *p = NULL;
int arglen;
char *arg;
static void
malloc_initialize_hook ()
{
+#ifndef USE_CRT_DLL
extern char **environ;
+#endif
if (initialized)
{
char **argv;
char **envp;
{
+#if GC_MARK_STACK
+ Lisp_Object dummy;
+#endif
char stack_bottom_variable;
int do_initial_setlocale;
int skip_args = 0;
+#ifndef USE_CRT_DLL
extern int errno;
extern int sys_nerr;
+#endif
#ifdef HAVE_SETRLIMIT
struct rlimit rlim;
#endif
int no_loadup = 0;
+#if GC_MARK_STACK
+ extern Lisp_Object *stack_base;
+ stack_base = &dummy;
+#endif
+
#ifdef LINUX_SBRK_BUG
__sbrk (1);
#endif
function creates Vterminal_frame. Termcap frames now use
faces, and the face implementation uses some symbols as
face names. */
-#ifndef HAVE_NTGUI
syms_of_xfaces ();
+ /* Call syms_of_keyboard before init_window_once because
+ keyboard sets up symbols that include some face names that
+ the X support will want to use. This can happen when
+ CANNOT_DUMP is defined. */
+ syms_of_keyboard ();
+
+#ifdef macintosh
+ /* init_window_once calls make_terminal_frame which on Mac OS creates
+ a full-fledge output_mac type frame. This does not work correctly
+ before syms_of_textprop, syms_of_macfns, syms_of_ccl,
+ syms_of_fontset, syms_of_xterm, syms_of_search, x_term_init, and
+ init_keyboard have already been called. */
+ syms_of_textprop ();
+ syms_of_macfns ();
+ syms_of_ccl ();
+ syms_of_fontset ();
+ syms_of_macterm ();
+ syms_of_macmenu ();
+ syms_of_data ();
+ syms_of_search ();
+
+ x_term_init ();
+ init_keyboard ();
#endif
init_window_once (); /* Init the window system */
}
init_eval ();
- init_coding ();
init_data ();
#ifdef CLASH_DETECTION
init_filelock ();;
}
no_loadup
- = !argmatch (argv, argc, "-nl", "--no-loadup", 6, NULL, &skip_args);
+ = argmatch (argv, argc, "-nl", "--no-loadup", 6, NULL, &skip_args);
#ifdef HAVE_X_WINDOWS
/* The basic levels of Lisp must come first */
/* And data must come first of all
for the sake of symbols like error-message */
+#ifndef macintosh
+ /* Called before init_window_once for Mac OS. */
syms_of_data ();
+#endif
syms_of_alloc ();
syms_of_lread ();
syms_of_print ();
syms_of_casetab ();
syms_of_callproc ();
syms_of_category ();
+#ifndef macintosh
+ /* Called before init_window_once for Mac OS. */
syms_of_ccl ();
+#endif
syms_of_charset ();
syms_of_cmds ();
#ifndef NO_DIR_LIBRARY
#endif /* CLASH_DETECTION */
syms_of_indent ();
syms_of_insdel ();
- syms_of_keyboard ();
syms_of_keymap ();
syms_of_macros ();
syms_of_marker ();
syms_of_minibuf ();
syms_of_mocklisp ();
syms_of_process ();
+#ifndef macintosh
+ /* Called before init_window_once for Mac OS. */
syms_of_search ();
+#endif
syms_of_frame ();
syms_of_syntax ();
syms_of_term ();
#ifdef HAVE_SOUND
syms_of_sound ();
#endif
-
+#ifndef macintosh
+ /* Called before init_window_once for Mac OS. */
syms_of_textprop ();
+#endif
syms_of_composite ();
#ifdef VMS
syms_of_vmsproc ();
#endif /* HAVE_X_WINDOWS */
#ifndef HAVE_NTGUI
+#ifndef macintosh
syms_of_xmenu ();
#endif
+#endif
#ifdef HAVE_NTGUI
syms_of_w32term ();
syms_of_w32fns ();
- syms_of_w32faces ();
syms_of_w32select ();
syms_of_w32menu ();
syms_of_fontset ();
#endif /* VMS */
init_display (); /* Determine terminal type. init_sys_modes uses results */
}
+#ifndef macintosh
+ /* Called before init_window_once for Mac OS. */
init_keyboard (); /* This too must precede init_sys_modes */
+#endif
#ifdef VMS
init_vmsproc (); /* And this too. */
#endif /* VMS */
#ifdef HAVE_SOUND
init_sound ();
#endif
+ init_window ();
if (!initialized)
{
extern void dump_opcode_frequencies ();
atexit (_mcleanup);
- // atexit (dump_opcode_frequencies);
/* This uses safe_bcopy because that function comes first in the
Emacs executable. It might be better to use something that
gives the start of the text segment, but start_of_text is not
/* Enter editor command loop. This never returns. */
Frecursive_edit ();
/* NOTREACHED */
+ return 0;
}
\f
/* Sort the args so we can find the most important ones
#ifdef DOUG_LEA_MALLOC
malloc_state_ptr = malloc_get_state ();
#endif
+
+#ifdef USE_MMAP_FOR_BUFFERS
+ mmap_set_vars (0);
+#endif
unexec (XSTRING (filename)->data,
!NILP (symfile) ? XSTRING (symfile)->data : 0, my_edata, 0, 0);
+#ifdef USE_MMAP_FOR_BUFFERS
+ mmap_set_vars (1);
+#endif
#ifdef DOUG_LEA_MALLOC
free (malloc_state_ptr);
#endif