#include "commands.h"
#include "console.h"
#include "process.h"
-#include "redisplay.h"
-#include "frame.h"
#include "sysdep.h"
+#include <setjmp.h>
#include "syssignal.h" /* Always include before systty.h */
#include "systty.h"
#include "sysfile.h"
#include "systime.h"
-#ifdef QUANTIFY
-#include <quantify.h>
-#endif
-
#ifdef HAVE_SHLIB
#include "sysdll.h"
#endif
#include TT_C_H_PATH
#endif
+#ifdef APOLLO
+#ifndef APOLLO_SR10
+#include <default_acl.h>
+#endif
+#endif
+
#if defined (WINDOWSNT)
#include <windows.h>
#endif
/* For PATH_EXEC */
#include <paths.h>
-#ifdef HEAP_IN_DATA
-void report_sheap_usage (int die_if_pure_storage_exceeded);
-#endif
-
-#if !defined (SYSTEM_MALLOC) && !defined (DOUG_LEA_MALLOC)
+#if !defined SYSTEM_MALLOC && !defined DOUG_LEA_MALLOC
extern void *(*__malloc_hook)(size_t);
extern void *(*__realloc_hook)(void *, size_t);
extern void (*__free_hook)(void *);
/* Version numbers and strings */
Lisp_Object Vemacs_major_version;
Lisp_Object Vemacs_minor_version;
-Lisp_Object Vemacs_patch_level;
Lisp_Object Vemacs_beta_version;
Lisp_Object Vxemacs_codename;
#ifdef INFODOCK
Lisp_Object Vexec_path;
Lisp_Object Vexec_directory, Vconfigure_exec_directory;
Lisp_Object Vlisp_directory, Vconfigure_lisp_directory;
-Lisp_Object Vmodule_directory, Vconfigure_module_directory;
-Lisp_Object Vsite_module_directory, Vconfigure_site_module_directory;
Lisp_Object Vconfigure_package_path;
Lisp_Object Vdata_directory, Vconfigure_data_directory;
Lisp_Object Vdoc_directory, Vconfigure_doc_directory;
Lisp_Object Vconfigure_lock_directory;
Lisp_Object Vdata_directory_list;
-Lisp_Object Vconfigure_info_directory;
+Lisp_Object Vinfo_directory, Vconfigure_info_directory;
Lisp_Object Vsite_directory, Vconfigure_site_directory;
Lisp_Object Vconfigure_info_path;
Lisp_Object Vinternal_error_checking;
-Lisp_Object Vmail_lock_methods, Vconfigure_mail_lock_method;
Lisp_Object Vpath_separator;
/* The default base directory XEmacs is installed under. */
/* Type of display specified. We cannot use a Lisp symbol here because
Lisp symbols may not initialized at the time that we set this
variable. */
-const char *display_use;
+CONST char *display_use;
/* If non-zero, then the early error handler will only print the error
message and exit. */
/* Nonzero means don't perform site-lisp searches at startup */
int inhibit_site_lisp;
-/* Nonzero means don't perform site-modules searches at startup */
-int inhibit_site_modules;
-
/* Nonzero means don't respect early packages at startup */
int inhibit_early_packages;
int debug_paths;
/* Save argv and argc. */
-static char **initial_argv;
-static int initial_argc;
+char **initial_argv;
+int initial_argc;
static void sort_args (int argc, char **argv);
+extern int always_gc; /* hack */
+
Lisp_Object Qkill_emacs_hook;
Lisp_Object Qsave_buffers_kill_emacs;
-extern Lisp_Object Vlisp_EXEC_SUFFIXES;
-
\f
/* Signal code for the fatal signal that was received */
static int fatal_error_code;
# if 0 /* This is evil, rarely useful, and causes grief in some cases. */
/* Check for Sun-style stack printing via /proc */
{
- const char *pstack = "/usr/proc/bin/pstack";
+ CONST char *pstack = "/usr/proc/bin/pstack";
if (access (pstack, X_OK) == 0)
{
char buf[100];
\f
DOESNT_RETURN
-fatal (const char *fmt, ...)
+fatal (CONST char *fmt, ...)
{
va_list args;
va_start (args, fmt);
GETTEXT on the format string. */
int
-stderr_out (const char *fmt, ...)
+stderr_out (CONST char *fmt, ...)
{
int retval;
va_list args;
GETTEXT on the format string. */
int
-stdout_out (const char *fmt, ...)
+stdout_out (CONST char *fmt, ...)
{
int retval;
va_list args;
/* Do not trust to what crt0 has stuffed into argv[0] */
char full_exe_path [MAX_PATH];
GetModuleFileName (NULL, full_exe_path, MAX_PATH);
- result = Fcons (build_ext_string (full_exe_path, Qfile_name),
+ result = Fcons (build_ext_string (full_exe_path, FORMAT_FILENAME),
result);
#if defined(HAVE_SHLIB)
(void)dll_init(full_exe_path);
}
else
#endif
- result = Fcons (build_ext_string (argv [i], Qfile_name),
- result);
+ result = Fcons (build_ext_string (argv [i], FORMAT_FILENAME), result);
}
}
return result;
for (i = 0, next = argv_list; i < n; i++, next = XCDR (next))
{
- const char *temp;
+ CONST char *temp;
CHECK_STRING (XCAR (next));
- TO_EXTERNAL_FORMAT (LISP_STRING, XCAR (next),
- C_STRING_ALLOCA, temp,
- Qnative);
+ GET_C_STRING_EXT_DATA_ALLOCA (XCAR (next), FORMAT_OS, temp);
(*argv) [i] = xstrdup (temp);
}
(*argv) [n] = 0;
#endif
#if defined (MULE) && defined (MSDOS) && defined (EMX)
-/* Setup all of files be input/output'ed with binary translation mode. */
+/* Setup all of files be input/output'ed with binary translation mdoe. */
asm (" .text");
asm ("L_setbinmode:");
asm (" movl $1, __fmode_bin");
/* Make stack traces always identify version + configuration */
#define main_1 STACK_TRACE_EYE_CATCHER
-/* This function is not static, so that the compiler is less likely to
- inline it, which would make it not show up in stack traces. */
-DECLARE_DOESNT_RETURN (main_1 (int, char **, char **, int));
-DOESNT_RETURN
+static DOESNT_RETURN
main_1 (int argc, char **argv, char **envp, int restart)
{
char stack_bottom_variable;
extern int malloc_cookie;
#endif
-#if (!defined (SYSTEM_MALLOC) && !defined (HAVE_LIBMCHECK) \
- && !defined (DOUG_LEA_MALLOC))
+#if !defined(SYSTEM_MALLOC) && !defined(HAVE_LIBMCHECK)
/* Make sure that any libraries we link against haven't installed a
hook for a gmalloc of a potentially incompatible version. */
/* If we're using libmcheck, the hooks have already been initialized, */
__malloc_hook = NULL;
__realloc_hook = NULL;
__free_hook = NULL;
-#endif /* not SYSTEM_MALLOC or HAVE_LIBMCHECK or DOUG_LEA_MALLOC */
+#endif /* not SYSTEM_MALLOC */
noninteractive = 0;
sort_args (argc, argv);
+ /* Map in shared memory, if we are using that. */
+#ifdef HAVE_SHM
+ if (argmatch (argv, argc, "-nl", "--no-shared-memory", 6, NULL, &skip_args))
+ {
+ map_in_data (0);
+ /* The shared memory was just restored, which clobbered this. */
+ skip_args = 1;
+ }
+ else
+ {
+ map_in_data (1);
+ /* The shared memory was just restored, which clobbered this. */
+ skip_args = 0;
+ }
+#endif /* HAVE_SHM */
+
#if (defined (MSDOS) && defined (EMX)) || defined (WIN32) || defined (_SCO_DS)
environ = envp;
#endif
clearerr (stdin);
+#ifdef APOLLO
+#ifndef APOLLO_SR10
+ /* If USE_DOMAIN_ACLS environment variable exists,
+ use ACLs rather than UNIX modes. */
+ if (egetenv ("USE_DOMAIN_ACLS"))
+ default_acl (USE_DEFACL);
+#endif
+#endif /* APOLLO */
+
#if defined (HAVE_MMAP) && defined (REL_ALLOC)
/* ralloc can only be used if using the GNU memory allocator. */
init_ralloc ();
-#elif defined (REL_ALLOC) && !defined(DOUG_LEA_MALLOC)
- if (initialized)
- init_ralloc();
#endif
#ifdef HAVE_SOCKS
inhibit_early_packages = 1;
skip_args--;
}
-#ifdef HAVE_SHLIB
- if (argmatch (argv, argc, "-no-site-modules", "--no-site-modules",
- 9, NULL, &skip_args))
- {
- inhibit_site_modules = 1;
- skip_args--;
- }
-#else
- inhibit_site_modules = 1;
-#endif
if (argmatch (argv, argc, "-vanilla", "--vanilla",
7, NULL, &skip_args))
{
We try to do things in an order that minimizes the non-obvious
dependencies between functions. */
- /* purify_flag 1 is correct even if CANNOT_DUMP.
- * loadup.el will set to nil at end. */
-
- purify_flag = 0;
-#ifdef PDUMP
- if (restart)
- initialized = 1;
- else {
- initialized = pdump_load ();
- purify_flag = !initialized;
- }
-#else
- if (!initialized)
- purify_flag = 1;
-#endif
-
if (!initialized)
{
/* Initialize things so that new Lisp objects
/* Initialize Qnil, Qt, Qunbound, and the
obarray. After this, symbols can be
- interned. This depends on init_alloc_once_early(). */
+ interned. This depends on init_alloc_once(). */
init_symbols_once_early ();
/* Declare the basic symbols pertaining to errors,
The *only* thing that the syms_of_*() functions are allowed to do
is call one of the following three functions:
- INIT_LRECORD_IMPLEMENTATION()
defsymbol()
defsubr() (i.e. DEFSUBR)
deferror()
syms_of_abbrev ();
syms_of_alloc ();
+#ifdef HAVE_X_WINDOWS
+ syms_of_balloon_x ();
+#endif
syms_of_buffer ();
syms_of_bytecode ();
syms_of_callint ();
syms_of_data ();
#ifdef DEBUG_XEMACS
syms_of_debug ();
- syms_of_tests ();
#endif /* DEBUG_XEMACS */
syms_of_device ();
#ifdef HAVE_DIALOGS
syms_of_dialog ();
#endif
syms_of_dired ();
+#ifdef HAVE_SHLIB
+ syms_of_dll ();
+#endif
syms_of_doc ();
syms_of_editfns ();
syms_of_elhash ();
syms_of_emacs ();
syms_of_eval ();
-#ifdef HAVE_X_WINDOWS
- syms_of_event_Xt ();
-#endif
#ifdef HAVE_DRAGNDROP
syms_of_dragdrop ();
#endif
syms_of_general ();
syms_of_glyphs ();
syms_of_glyphs_eimage ();
- syms_of_glyphs_widget ();
#if defined (HAVE_MENUBARS) || defined (HAVE_SCROLLBARS) || defined (HAVE_DIALOGS) || defined (HAVE_TOOLBARS)
syms_of_gui ();
#endif
- syms_of_gutter ();
syms_of_indent ();
syms_of_intl ();
syms_of_keymap ();
syms_of_menubar ();
#endif
syms_of_minibuf ();
-#ifdef HAVE_SHLIB
- syms_of_module ();
-#endif
syms_of_objects ();
syms_of_print ();
#if !defined (NO_SUBPROCESSES)
syms_of_rangetab ();
syms_of_redisplay ();
syms_of_search ();
- syms_of_select ();
syms_of_signal ();
syms_of_sound ();
syms_of_specifier ();
syms_of_device_tty ();
syms_of_objects_tty ();
#endif
-
#ifdef HAVE_X_WINDOWS
- syms_of_balloon_x ();
syms_of_device_x ();
#ifdef HAVE_DIALOGS
syms_of_dialog_x ();
#endif
+ syms_of_event_Xt ();
syms_of_frame_x ();
syms_of_glyphs_x ();
syms_of_objects_x ();
#ifdef HAVE_MENUBARS
syms_of_menubar_x ();
#endif
- syms_of_select_x ();
+ syms_of_xselect ();
#if defined (HAVE_MENUBARS) || defined (HAVE_SCROLLBARS) || defined (HAVE_DIALOGS) || defined (HAVE_TOOLBARS)
syms_of_gui_x ();
#endif
-#ifdef HAVE_XIM
-#ifdef XIM_XLIB
- syms_of_input_method_xlib ();
-#endif
-#endif /* HAVE_XIM */
#endif /* HAVE_X_WINDOWS */
#ifdef HAVE_MS_WINDOWS
syms_of_console_mswindows ();
syms_of_device_mswindows ();
+ syms_of_event_mswindows ();
syms_of_frame_mswindows ();
syms_of_objects_mswindows ();
syms_of_select_mswindows ();
syms_of_glyphs_mswindows ();
- syms_of_gui_mswindows ();
#ifdef HAVE_MENUBARS
syms_of_menubar_mswindows ();
#endif
#ifdef HAVE_MSW_C_DIRED
syms_of_dired_mswindows ();
#endif
-#ifdef WINDOWSNT
- syms_of_ntproc ();
-#endif
#endif /* HAVE_MS_WINDOWS */
#ifdef MULE
syms_of_mule_charset ();
#endif
#ifdef FILE_CODING
- syms_of_file_coding ();
+ syms_of_mule_coding ();
#endif
#ifdef MULE
#ifdef HAVE_WNN
SYMS_MACHINE;
#endif
+#ifdef EMACS_BTL
+ syms_of_btl ();
+#endif
+
/*
#if defined (GNU_MALLOC) && \
defined (ERROR_CHECK_MALLOC) && \
syms_of_eldap ();
#endif
-#ifdef HAVE_GPM
- syms_of_gpmevent ();
-#endif
-
/* Now create the subtypes for the types that have them.
We do this before the vars_*() because more symbols
may get initialized here. */
console_type_create_device_x ();
console_type_create_frame_x ();
console_type_create_glyphs_x ();
- console_type_create_select_x ();
#ifdef HAVE_MENUBARS
console_type_create_menubar_x ();
#endif
console_type_create_objects_mswindows ();
console_type_create_redisplay_mswindows ();
console_type_create_glyphs_mswindows ();
- console_type_create_select_mswindows ();
# ifdef HAVE_SCROLLBARS
console_type_create_scrollbar_mswindows ();
# endif
specifier_type_create ();
specifier_type_create_image ();
- specifier_type_create_gutter ();
specifier_type_create_objects ();
#ifdef HAVE_TOOLBARS
specifier_type_create_toolbar ();
structure_type_create_chartab ();
structure_type_create_faces ();
structure_type_create_rangetab ();
- structure_type_create_hash_table ();
+ structure_type_create_hashtable ();
/* Now initialize the image instantiator formats and associated symbols.
Other than the first function below, the functions may
image_instantiator_format_create ();
image_instantiator_format_create_glyphs_eimage ();
- image_instantiator_format_create_glyphs_widget ();
-#ifdef HAVE_TTY
- image_instantiator_format_create_glyphs_tty ();
-#endif
#ifdef HAVE_X_WINDOWS
image_instantiator_format_create_glyphs_x ();
#endif /* HAVE_X_WINDOWS */
lstream_type_create ();
#ifdef FILE_CODING
- lstream_type_create_file_coding ();
+ lstream_type_create_mule_coding ();
#endif
#if defined (HAVE_MS_WINDOWS) && !defined(HAVE_MSG_SELECT)
lstream_type_create_mswindows_selectable ();
#endif
-
+
/* Initialize processes implementation.
The functions may make exactly the following function/macro calls:
staticpro()
Fprovide(symbol)
intern()
- Fput()
+ pure_put()
xmalloc()
defsymbol(), if it's absolutely necessary and you're sure that
the symbol isn't referenced anywhere else in the initialization
Any of the object-creating functions on alloc.c: e.g.
make_pure_*()
+ Fpurecopy()
make_string()
build_string()
make_vector()
Fcons()
listN()
make_opaque_ptr()
+ make_opaque_long()
perhaps a few others.
*/
/* Now allow Fprovide() statements to be made. */
init_provide_once ();
- /* Do that before any specifier creation (esp. vars_of_glyphs()) */
- vars_of_specifier ();
-
vars_of_abbrev ();
vars_of_alloc ();
+#ifdef HAVE_X_WINDOWS
+ vars_of_balloon_x ();
+#endif
vars_of_buffer ();
vars_of_bytecode ();
vars_of_callint ();
vars_of_callproc ();
- vars_of_chartab ();
vars_of_cmdloop ();
vars_of_cmds ();
vars_of_console ();
vars_of_data ();
#ifdef DEBUG_XEMACS
vars_of_debug ();
- vars_of_tests ();
#endif
vars_of_console_stream ();
vars_of_device ();
vars_of_elhash ();
vars_of_emacs ();
vars_of_eval ();
-
-#ifdef HAVE_X_WINDOWS
- vars_of_event_Xt ();
-#endif
-#if defined(HAVE_TTY) && (defined (DEBUG_TTY_EVENT_STREAM) || !defined (HAVE_X_WINDOWS))
- vars_of_event_tty ();
-#endif
-#ifdef HAVE_MS_WINDOWS
- vars_of_event_mswindows ();
-#endif
vars_of_event_stream ();
-
vars_of_events ();
vars_of_extents ();
vars_of_faces ();
vars_of_fileio ();
+#ifdef CLASH_DETECTION
+ vars_of_filelock ();
+#endif
vars_of_floatfns ();
vars_of_font_lock ();
vars_of_frame ();
vars_of_glyphs ();
vars_of_glyphs_eimage ();
- vars_of_glyphs_widget ();
#if defined (HAVE_MENUBARS) || defined (HAVE_SCROLLBARS) || defined (HAVE_DIALOGS) || defined (HAVE_TOOLBARS)
vars_of_gui ();
#endif
- vars_of_gutter ();
vars_of_indent ();
vars_of_insdel ();
vars_of_intl ();
vars_of_menubar ();
#endif
vars_of_minibuf ();
-#ifdef HAVE_SHLIB
- vars_of_module ();
-#endif
-#ifdef WINDOWSNT
- vars_of_nt ();
- vars_of_ntproc ();
-#endif
vars_of_objects ();
vars_of_print ();
vars_of_scrollbar ();
#endif
vars_of_search ();
- vars_of_select ();
vars_of_sound ();
+ vars_of_specifier ();
vars_of_symbols ();
vars_of_syntax ();
#ifdef HAVE_TOOLBARS
#ifdef HAVE_TTY
vars_of_console_tty ();
+ vars_of_event_tty ();
vars_of_frame_tty ();
vars_of_objects_tty ();
#endif
#ifdef HAVE_X_WINDOWS
- vars_of_balloon_x ();
vars_of_device_x ();
#ifdef HAVE_DIALOGS
vars_of_dialog_x ();
#endif
+ vars_of_event_Xt ();
vars_of_frame_x ();
vars_of_glyphs_x ();
#ifdef HAVE_MENUBARS
vars_of_menubar_x ();
#endif
vars_of_objects_x ();
- vars_of_select_x ();
+ vars_of_xselect ();
#ifdef HAVE_SCROLLBARS
vars_of_scrollbar_x ();
#endif
#if defined (HAVE_MENUBARS) || defined (HAVE_SCROLLBARS) || defined (HAVE_DIALOGS) || defined (HAVE_TOOLBARS)
vars_of_gui_x ();
#endif
-#endif /* HAVE_X_WINDOWS */
+#endif
#ifdef HAVE_MS_WINDOWS
vars_of_device_mswindows ();
vars_of_console_mswindows ();
+ vars_of_event_mswindows ();
vars_of_frame_mswindows ();
vars_of_objects_mswindows ();
vars_of_select_mswindows ();
#ifdef MULE
vars_of_mule ();
- vars_of_mule_ccl ();
vars_of_mule_charset ();
#endif
#ifdef FILE_CODING
- vars_of_file_coding ();
+ vars_of_mule_coding ();
#endif
#ifdef MULE
#ifdef HAVE_WNN
vars_of_eldap ();
#endif
-#ifdef HAVE_GPM
- vars_of_gpmevent ();
-#endif
-
/* Now initialize any specifier variables. We do this later
because it has some dependence on the vars initialized
above.
*/
specifier_vars_of_glyphs ();
- specifier_vars_of_gutter ();
#ifdef HAVE_MENUBARS
specifier_vars_of_menubar ();
#endif
/* Calls Fmake_range_table(). */
complex_vars_of_search ();
- /* Calls make_lisp_hash_table(). */
+ /* Calls make_lisp_hashtable(). */
complex_vars_of_extents ();
- /* Depends on hash tables and specifiers. */
+ /* Depends on hashtables and specifiers. */
complex_vars_of_faces ();
#ifdef MULE
- /* These two depend on hash tables and various variables declared
+ /* These two depend on hashtables and various variables declared
earlier. The second may also depend on the first. */
complex_vars_of_mule_charset ();
#endif
-#ifdef FILE_CODING
- complex_vars_of_file_coding ();
+#if defined(FILE_CODING)
+ complex_vars_of_mule_coding ();
#endif
/* This calls allocate_glyph(), which creates specifiers
might depend on all sorts of things; I'm not sure. */
complex_vars_of_emacs ();
+#ifdef CLASH_DETECTION
+ complex_vars_of_filelock ();
+#endif /* CLASH_DETECTION */
+
/* This creates a couple of basic keymaps and depends on Lisp
- hash tables and Ffset() (both of which depend on some variables
+ hashtables and Ffset() (both of which depend on some variables
initialized in the vars_of_*() section) and possibly other
stuff. */
complex_vars_of_keymap ();
-
- /* Calls make_lisp_hash_table() and creates a keymap */
+ /* Calls Fmake_hashtable() and creates a keymap */
complex_vars_of_event_stream ();
-#ifdef ERROR_CHECK_GC
- {
- extern int always_gc;
- if (always_gc) /* purification debugging hack */
- garbage_collect_1 ();
- }
-#endif
-#ifdef PDUMP
- } else if (!restart) {
- reinit_alloc_once_early ();
- reinit_symbols_once_early ();
- reinit_opaque_once_early ();
-
- reinit_console_type_create_stream ();
-#ifdef HAVE_TTY
- reinit_console_type_create_tty ();
-#endif
-#ifdef HAVE_X_WINDOWS
- reinit_console_type_create_x ();
- reinit_console_type_create_device_x ();
-#endif
-#ifdef HAVE_MS_WINDOWS
- reinit_console_type_create_mswindows ();
-#endif
-
- reinit_specifier_type_create ();
- reinit_specifier_type_create_image ();
- reinit_specifier_type_create_gutter ();
- reinit_specifier_type_create_objects ();
-#ifdef HAVE_TOOLBARS
- reinit_specifier_type_create_toolbar ();
-#endif
-
- structure_type_create ();
-
- structure_type_create_chartab ();
- structure_type_create_faces ();
- structure_type_create_rangetab ();
- structure_type_create_hash_table ();
-
- lstream_type_create ();
-#ifdef FILE_CODING
- lstream_type_create_file_coding ();
-#endif
-#if defined (HAVE_MS_WINDOWS) && !defined(HAVE_MSG_SELECT)
- lstream_type_create_mswindows_selectable ();
-#endif
-#ifdef HAVE_UNIX_PROCESSES
- process_type_create_unix ();
-#endif
-#ifdef HAVE_WIN32_PROCESSES
- process_type_create_nt ();
-#endif
-
- reinit_vars_of_buffer ();
- reinit_vars_of_console ();
-#ifdef DEBUG_XEMACS
- reinit_vars_of_debug ();
-#endif
- reinit_vars_of_device ();
- reinit_vars_of_eval ();
-#ifdef HAVE_X_WINDOWS
- reinit_vars_of_event_Xt ();
-#endif
-#if defined(HAVE_TTY) && (defined (DEBUG_TTY_EVENT_STREAM) || !defined (HAVE_X_WINDOWS))
- reinit_vars_of_event_tty ();
-#endif
-#ifdef HAVE_MS_WINDOWS
- reinit_vars_of_event_mswindows ();
-#endif
- reinit_vars_of_event_stream ();
- reinit_vars_of_events ();
- reinit_vars_of_extents ();
- reinit_vars_of_font_lock ();
- reinit_vars_of_glyphs ();
- reinit_vars_of_glyphs_widget ();
- reinit_vars_of_insdel ();
- reinit_vars_of_lread ();
- reinit_vars_of_lstream ();
- reinit_vars_of_minibuf ();
-#ifdef HAVE_SHLIB
- reinit_vars_of_module ();
-#endif
- reinit_vars_of_objects ();
- reinit_vars_of_print ();
- reinit_vars_of_redisplay ();
- reinit_vars_of_search ();
- reinit_vars_of_undo ();
- reinit_vars_of_window ();
-
-#ifdef HAVE_MS_WINDOWS
- reinit_vars_of_frame_mswindows ();
-#endif
-
-#ifdef HAVE_X_WINDOWS
- reinit_vars_of_device_x ();
-#ifdef HAVE_SCROLLBARS
- reinit_vars_of_scrollbar_x ();
-#endif
-#ifdef HAVE_MENUBARS
- reinit_vars_of_menubar_x ();
-#endif
- reinit_vars_of_select_x ();
-#if defined (HAVE_MENUBARS) || defined (HAVE_SCROLLBARS) || defined (HAVE_DIALOGS) || defined (HAVE_TOOLBARS)
- reinit_vars_of_gui_x ();
-#endif
-#endif /* HAVE_X_WINDOWS */
-
-#if defined(MULE) && defined(HAVE_WNN)
- reinit_vars_of_mule_wnn ();
-#endif
-
- reinit_complex_vars_of_buffer ();
- reinit_complex_vars_of_console ();
- reinit_complex_vars_of_minibuf ();
-#endif /* PDUMP */
+ if (always_gc) /* purification debugging hack */
+ garbage_collect_1 ();
}
-
/* CONGRATULATIONS!!! We have successfully initialized the Lisp
engine. */
#ifdef WINDOWSNT
/*
* For Win32, call init_environment() now, so that environment/registry
- * variables will be properly entered into Vprocess_environment.
+ * variables will be properly entered into Vprocess_envonment.
*/
init_environment();
#endif
init_redisplay (); /* Determine terminal type.
init_sys_modes uses results */
- init_frame ();
init_event_stream (); /* Set up so we can get user input. */
init_macros (); /* set up so we can run macros. */
init_editfns (); /* Determine the name of the user we're running as */
else
{
Vinvocation_path = decode_env_path ("PATH", NULL);
- locate_file (Vinvocation_path, Vinvocation_name,
- Vlisp_EXEC_SUFFIXES,
+ locate_file (Vinvocation_path, Vinvocation_name, EXEC_SUFFIXES,
&Vinvocation_directory, X_OK);
}
char *buf = (char *)alloca (XSTRING_LENGTH (Vinvocation_directory)
+ XSTRING_LENGTH (Vinvocation_name)
+ 2);
- sprintf (buf, "%s/%s", XSTRING_DATA (Vinvocation_directory),
- XSTRING_DATA (Vinvocation_name));
+ sprintf (buf, "%s/%s", XSTRING_DATA(Vinvocation_directory),
+ XSTRING_DATA(Vinvocation_name));
/* All we can do is cry if an error happens, so ignore it. */
- (void) dll_init (buf);
+ (void)dll_init(buf);
}
#endif
struct standard_args
{
- const char *name;
- const char *longname;
+ CONST char * CONST name;
+ CONST char * CONST longname;
int priority;
int nargs;
};
-static const struct standard_args standard_args[] =
+static struct standard_args standard_args[] =
{
/* Handled by main_1 above: */
{ "-nl", "--no-shared-memory", 100, 0 },
static void
sort_args (int argc, char **argv)
{
- char **new_argv = xnew_array (char *, argc);
+ char **new = xnew_array (char *, argc);
/* For each element of argv,
the corresponding element of options is:
0 for an option that takes no arguments,
}
}
- /* Copy the arguments, in order of decreasing priority, to NEW_ARGV. */
- new_argv[0] = argv[0];
+ /* Copy the arguments, in order of decreasing priority, to NEW. */
+ new[0] = argv[0];
while (to < argc)
{
int best = -1;
if (best < 0)
abort ();
- /* Copy the highest priority remaining option, with its args, to NEW_ARGV. */
- new_argv[to++] = argv[best];
+ /* Copy the highest priority remaining option, with its args, to NEW. */
+ new[to++] = argv[best];
for (i = 0; i < options[best]; i++)
- new_argv[to++] = argv[best + i + 1];
+ new[to++] = argv[best + i + 1];
/* Clear out this option in ARGV. */
argv[best] = 0;
argv[best + i + 1] = 0;
}
- memcpy (argv, new_argv, sizeof (char *) * argc);
- xfree (new_argv);
- xfree (options);
- xfree (priority);
+ memcpy (argv, new, sizeof (char *) * argc);
}
static JMP_BUF run_temacs_catch;
a dumped version in case you want to rerun it. This function is most
useful when used as part of the `make all-elc' command. --ben]
This will "restart" emacs with the specified command-line arguments.
-
- Martin thinks this function is most useful when using debugging
- tools like Purify or tcov that get confused by XEmacs' dumping. */
+ */
(int nargs, Lisp_Object *args))
{
int ac;
- const Extbyte *wampum;
+ CONST Extbyte *wampum;
int namesize;
int total_len;
Lisp_Object orig_invoc_name = Fcar (Vcommand_line_args);
- const Extbyte **wampum_all = alloca_array (const Extbyte *, nargs);
+ CONST Extbyte **wampum_all = alloca_array (CONST Extbyte *, nargs);
int *wampum_all_len = alloca_array (int, nargs);
assert (!gc_in_progress);
/* Need to convert the orig_invoc_name and all of the arguments
to external format. */
- TO_EXTERNAL_FORMAT (LISP_STRING, orig_invoc_name,
- ALLOCA, (wampum, namesize),
- Qnative);
+ GET_STRING_EXT_DATA_ALLOCA (orig_invoc_name, FORMAT_OS, wampum,
+ namesize);
namesize++;
for (ac = 0, total_len = namesize; ac < nargs; ac++)
{
CHECK_STRING (args[ac]);
- TO_EXTERNAL_FORMAT (LISP_STRING, args[ac],
- ALLOCA, (wampum_all[ac], wampum_all_len[ac]),
- Qnative);
+ GET_STRING_EXT_DATA_ALLOCA (args[ac], FORMAT_OS,
+ wampum_all[ac],
+ wampum_all_len[ac]);
wampum_all_len[ac]++;
total_len += wampum_all_len[ac];
}
DO_REALLOC (run_temacs_args, run_temacs_args_size, total_len, char);
- DO_REALLOC (run_temacs_argv, run_temacs_argv_size, nargs+2, char *);
+ DO_REALLOC (run_temacs_argv, run_temacs_argv_size, nargs+1, char *);
memcpy (run_temacs_args, wampum, namesize);
run_temacs_argv [0] = run_temacs_args;
unbind_to (0, Qnil); /* this closes loadup.el */
purify_flag = 0;
run_temacs_argc = nargs + 1;
-#ifdef HEAP_IN_DATA
- report_sheap_usage (0);
+#ifdef REPORT_PURE_USAGE
+ report_pure_usage (1, 0);
+#else
+ report_pure_usage (0, 0);
#endif
LONGJMP (run_temacs_catch, 1);
return Qnil; /* not reached; warning suppression */
int volatile vol_argc = argc;
char ** volatile vol_argv = argv;
char ** volatile vol_envp = envp;
- /* This is hairy. We need to compute where the XEmacs binary was invoked
- from because temacs initialization requires it to find the lisp
- directories. The code that recomputes the path is guarded by the
- restarted flag. There are three possible paths I've found so far
- through this:
-
- temacs -- When running temacs for basic build stuff, the first main_1
- will be the only one invoked. It must compute the path else there
- will be a very ugly bomb in startup.el (can't find obvious location
- for doc-directory data-directory, etc.).
-
- temacs w/ run-temacs on the command line -- This is run to bytecompile
- all the out of date dumped lisp. It will execute both of the main_1
- calls and the second one must not touch the first computation because
- argc/argv are hosed the second time through.
-
- xemacs -- Only the second main_1 is executed. The invocation path must
- computed but this only matters when running in place or when running
- as a login shell.
-
- As a bonus for straightening this out, XEmacs can now be run in place
- as a login shell. This never used to work.
-
- As another bonus, we can now guarantee that
- (concat invocation-directory invocation-name) contains the filename
- of the XEmacs binary we are running. This can now be used in a
- definite test for out of date dumped files. -slb */
+ /* This is hairy. We need to compute where the XEmacs binary was invoked */
+ /* from because temacs initialization requires it to find the lisp */
+ /* directories. The code that recomputes the path is guarded by the */
+ /* restarted flag. There are three possible paths I've found so far */
+ /* through this: */
+ /* temacs -- When running temacs for basic build stuff, the first main_1 */
+ /* will be the only one invoked. It must compute the path else there */
+ /* will be a very ugly bomb in startup.el (can't find obvious location */
+ /* for doc-directory data-directory, etc.). */
+ /* temacs w/ run-temacs on the command line -- This is run to bytecompile */
+ /* all the out of date dumped lisp. It will execute both of the main_1 */
+ /* calls and the second one must not touch the first computation because */
+ /* argc/argv are hosed the second time through. */
+ /* xemacs -- Only the second main_1 is executed. The invocation path must */
+ /* computed but this only matters when running in place or when running */
+ /* as a login shell. */
+ /* As a bonus for straightening this out, XEmacs can now be run in place */
+ /* as a login shell. This never used to work. */
+ /* As another bonus, we can now guarantee that */
+ /* (concat invocation-directory invocation-name) contains the filename */
+ /* of the XEmacs binary we are running. This can now be used in a */
+ /* definite test for out of date dumped files. -slb */
int restarted = 0;
#ifdef QUANTIFY
quantify_stop_recording_data ();
}
#ifdef RUN_TIME_REMAP
else
- /* obviously no-one uses this because where it was before initialized was
+ /* obviously no-one uses this because where it was before initalized was
*always* true */
run_time_remap (argv[0]);
#endif
/* GCC >= 2.8. -slb */
#if defined(GNU_MALLOC)
static void
-voodoo_free_hook (void *mem)
+voodoo_free_hook(void *mem)
{
/* Disable all calls to free() when XEmacs is exiting and it doesn't */
/* matter. */
- __free_hook =
-#ifdef __GNUC__ /* prototype of __free_hook varies with glibc version */
- (__typeof__ (__free_hook))
-#endif
- voodoo_free_hook;
+ __free_hook = voodoo_free_hook;
}
-#endif /* GNU_MALLOC */
+#endif
DEFUN ("kill-emacs", Fkill_emacs, 0, 1, "P", /*
Exit the XEmacs job and kill it. Ask for confirmation, without argument.
UNGCPRO;
- shut_down_emacs (0, STRINGP (arg) ? arg : Qnil);
+ shut_down_emacs (0, ((STRINGP (arg)) ? arg : Qnil));
#if defined(GNU_MALLOC)
- __free_hook =
-#ifdef __GNUC__ /* prototype of __free_hook varies with glibc version */
- (__typeof__ (__free_hook))
-#endif
- voodoo_free_hook;
+ __free_hook = voodoo_free_hook;
#endif
- exit (INTP (arg) ? XINT (arg) : 0);
+ exit ((INTP (arg)) ? XINT (arg) : 0);
/* NOTREACHED */
return Qnil; /* I'm sick of the compiler warning */
}
("Your files have been auto-saved.\n"
"Use `M-x recover-session' to recover them.\n"
"\n"
- "If you have access to the PROBLEMS file that came with your\n"
- "version of XEmacs, please check to see if your crash is described\n"
- "there, as there may be a workaround available.\n"
#ifdef INFODOCK
- "Otherwise, please report this bug by selecting `Report-Bug'\n"
- "in the InfoDock menu.\n"
+ "Please report this bug by selecting `Report-Bug' in the InfoDock\n"
+ "menu.\n"
#else
- "Otherwise, please report this bug by running the send-pr\n"
- "script included with XEmacs, or selecting `Send Bug Report'\n"
- "from the help menu.\n"
+ "Please report this bug by running the send-pr script included\n"
+ "with XEmacs, or selecting `Send Bug Report' from the help menu.\n"
"As a last resort send ordinary email to `crashes@xemacs.org'.\n"
#endif
"*MAKE SURE* to include the information in the command\n"
"\n"
" gdb ");
{
- const char *name;
+ CONST char *name;
char *dir = 0;
/* Now try to determine the actual path to the executable,
to try to make the backtrace-determination process as foolproof
as possible. */
- if (STRINGP (Vinvocation_name))
+ if (GC_STRINGP (Vinvocation_name))
name = (char *) XSTRING_DATA (Vinvocation_name);
else
name = "xemacs";
- if (STRINGP (Vinvocation_directory))
+ if (GC_STRINGP (Vinvocation_directory))
dir = (char *) XSTRING_DATA (Vinvocation_directory);
if (!dir || dir[0] != '/')
stderr_out ("`which %s`", name);
\f
#ifndef CANNOT_DUMP
+/* Nothing like this can be implemented on an Apollo.
+ What a loss! */
-#if !defined(PDUMP) || !defined(SYSTEM_MALLOC)
extern char my_edata[];
+
+#ifdef HAVE_SHM
+
+DEFUN ("dump-emacs-data", Fdump_emacs_data, 1, 1, 0, /*
+Dump current state of XEmacs into data file FILENAME.
+This function exists on systems that use HAVE_SHM.
+*/
+ (intoname))
+{
+ /* This function can GC */
+ int opurify;
+ struct gcpro gcpro1;
+ GCPRO1 (intoname);
+
+ CHECK_STRING (intoname);
+ intoname = Fexpand_file_name (intoname, Qnil);
+
+ opurify = purify_flag;
+ purify_flag = 0;
+
+ fflush (stderr);
+ fflush (stdout);
+
+ disksave_object_finalization ();
+ release_breathing_space ();
+
+ /* Tell malloc where start of impure now is */
+ /* Also arrange for warnings when nearly out of space. */
+#ifndef SYSTEM_MALLOC
+ memory_warnings (my_edata, malloc_warning);
#endif
+ UNGCPRO;
+ map_out_data (XSTRING_DATA (intoname));
+
+ purify_flag = opurify;
+ return Qnil;
+}
+
+#else /* not HAVE_SHM */
extern void disable_free_hook (void);
DEFUN ("dump-emacs", Fdump_emacs, 2, 2, 0, /*
/* When we're dumping, we can't use the debugging free() */
disable_free_hook ();
#endif
+#if 1 /* martin */
+#endif
CHECK_STRING (intoname);
intoname = Fexpand_file_name (intoname, Qnil);
opurify = purify_flag;
purify_flag = 0;
-#ifdef HEAP_IN_DATA
- report_sheap_usage (1);
+#ifdef DEBUG_XEMACS
+ report_pure_usage (1, 1);
+#else
+ report_pure_usage (0, 1);
#endif
- clear_message ();
-
fflush (stderr);
fflush (stdout);
char *intoname_ext;
char *symname_ext;
- TO_EXTERNAL_FORMAT (LISP_STRING, intoname,
- C_STRING_ALLOCA, intoname_ext,
- Qfile_name);
-
+ GET_C_STRING_FILENAME_DATA_ALLOCA (intoname, intoname_ext);
if (STRINGP (symname))
- TO_EXTERNAL_FORMAT (LISP_STRING, symname,
- C_STRING_ALLOCA, symname_ext,
- Qfile_name);
+ GET_C_STRING_FILENAME_DATA_ALLOCA (symname, symname_ext);
else
symname_ext = 0;
garbage_collect_1 ();
-
-#ifdef PDUMP
- pdump ();
-#else
-
#ifdef DOUG_LEA_MALLOC
malloc_state_ptr = malloc_get_state ();
#endif
It's a whole lot easier to do the conversion here than to
modify all the unexec routines to ensure that filename
conversion is applied everywhere. Don't worry about memory
- leakage because this call only happens once. */
- unexec (intoname_ext, symname_ext, (uintptr_t) my_edata, 0, 0);
+ leakage because this call only happens once. */
+ unexec (intoname_ext, symname_ext, (uintptr_t) my_edata, 0, 0);
#ifdef DOUG_LEA_MALLOC
- free (malloc_state_ptr);
+ free (malloc_state_ptr);
#endif
-#endif /* not PDUMP */
}
#endif /* not MSDOS and EMX */
return Qnil;
}
+#endif /* not HAVE_SHM */
+
#endif /* not CANNOT_DUMP */
\f
#ifndef SEPCHAR
/* Split STRING into a list of substrings. The substrings are the
parts of original STRING separated by SEPCHAR. */
static Lisp_Object
-split_string_by_emchar_1 (const Bufbyte *string, Bytecount size,
+split_string_by_emchar_1 (CONST Bufbyte *string, Bytecount size,
Emchar sepchar)
{
Lisp_Object result = Qnil;
- const Bufbyte *end = string + size;
+ CONST Bufbyte *end = string + size;
while (1)
{
- const Bufbyte *p = string;
+ CONST Bufbyte *p = string;
while (p < end)
{
if (charptr_emchar (p) == sepchar)
}
/* The same as the above, except PATH is an external C string (it is
- converted using Qfile_name), and sepchar is hardcoded to SEPCHAR
+ converted as FORMAT_FILENAME), and sepchar is hardcoded to SEPCHAR
(':' or whatever). */
Lisp_Object
-decode_path (const char *path)
+decode_path (CONST char *path)
{
- Bytecount newlen;
+ int len;
Bufbyte *newpath;
if (!path)
return Qnil;
- TO_INTERNAL_FORMAT (C_STRING, path, ALLOCA, (newpath, newlen), Qfile_name);
+ GET_C_CHARPTR_INT_FILENAME_DATA_ALLOCA (path, newpath);
+ len = strlen (newpath);
/* #### Does this make sense? It certainly does for
decode_env_path(), but it looks dubious here. Does any code
depend on decode_path("") returning nil instead of an empty
string? */
- if (!newlen)
+ if (!len)
return Qnil;
- return split_string_by_emchar_1 (newpath, newlen, SEPCHAR);
+ return split_string_by_emchar_1 (newpath, (Bytecount)len, SEPCHAR);
}
Lisp_Object
-decode_env_path (const char *evarname, const char *default_)
+decode_env_path (CONST char *evarname, CONST char *default_)
{
- const char *path = 0;
+ CONST char *path = 0;
if (evarname)
path = egetenv (evarname);
if (!path)
/* This highly dubious kludge ... shut up Jamie, I'm tired of your slagging. */
DOESNT_RETURN
-assert_failed (const char *file, int line, const char *expr)
+assert_failed (CONST char *file, int line, CONST char *expr)
{
stderr_out ("Fatal error: assertion failed, file %s, line %d, %s\n",
file, line, expr);
#ifdef QUANTIFY
DEFUN ("quantify-start-recording-data", Fquantify_start_recording_data,
- 0, 0, "", /*
+ 0, 0, 0, /*
Start recording Quantify data.
*/
())
}
DEFUN ("quantify-stop-recording-data", Fquantify_stop_recording_data,
- 0, 0, "", /*
+ 0, 0, 0, /*
Stop recording Quantify data.
*/
())
return Qnil;
}
-DEFUN ("quantify-clear-data", Fquantify_clear_data, 0, 0, "", /*
+DEFUN ("quantify-clear-data", Fquantify_clear_data, 0, 0, 0, /*
Clear all Quantify data.
*/
())
syms_of_emacs (void)
{
#ifndef CANNOT_DUMP
+#ifdef HAVE_SHM
+ DEFSUBR (Fdump_emacs_data);
+#else
DEFSUBR (Fdump_emacs);
+#endif
#endif /* !CANNOT_DUMP */
DEFSUBR (Frun_emacs_from_temacs);
DEFVAR_LISP ("system-configuration", &Vsystem_configuration /*
String naming the configuration XEmacs was built for.
*/ );
- Vsystem_configuration = build_string (EMACS_CONFIGURATION);
+ Vsystem_configuration = Fpurecopy (build_string (EMACS_CONFIGURATION));
#ifndef EMACS_CONFIG_OPTIONS
# define EMACS_CONFIG_OPTIONS "UNKNOWN"
DEFVAR_LISP ("system-configuration-options", &Vsystem_configuration_options /*
String containing the configuration options XEmacs was built with.
*/ );
- Vsystem_configuration_options = build_string (EMACS_CONFIG_OPTIONS);
+ Vsystem_configuration_options = Fpurecopy (build_string
+ (EMACS_CONFIG_OPTIONS));
DEFVAR_LISP ("emacs-major-version", &Vemacs_major_version /*
Major version number of this version of Emacs, as an integer.
*/ );
Vemacs_minor_version = make_int (EMACS_MINOR_VERSION);
- DEFVAR_LISP ("emacs-patch-level", &Vemacs_patch_level /*
-The patch level of this version of Emacs, as an integer.
-The value is non-nil if this version of XEmacs is part of a series of
-stable XEmacsen, but has bug fixes applied.
-Warning: this variable does not exist in FSF Emacs or in XEmacs versions
-earlier than 21.1.1
-*/ );
-#ifdef EMACS_PATCH_LEVEL
- Vemacs_patch_level = make_int (EMACS_PATCH_LEVEL);
-#else
- Vemacs_patch_level = Qnil;
-#endif
-
- DEFVAR_LISP ("emacs-beta-version", &Vemacs_beta_version /*
+ DEFVAR_LISP ("emacs-beta-version", &Vemacs_beta_version /*
Beta number of this version of Emacs, as an integer.
The value is nil if this is an officially released version of XEmacs.
Warning: this variable does not exist in FSF Emacs or in XEmacs versions
#ifndef XEMACS_CODENAME
#define XEMACS_CODENAME "Noname"
#endif
- Vxemacs_codename = build_string (XEMACS_CODENAME);
+ Vxemacs_codename = Fpurecopy (build_string (XEMACS_CODENAME));
DEFVAR_BOOL ("noninteractive", &noninteractive1 /*
Non-nil means XEmacs is running without interactive terminal.
inhibit_site_lisp = 1;
#endif
- DEFVAR_BOOL ("inhibit-site-modules", &inhibit_site_modules /*
-Set to non-nil when site-modules should not be searched at startup.
-*/ );
-#ifdef INHIBIT_SITE_MODULES
- inhibit_site_modules = 1;
-#endif
-
DEFVAR_INT ("emacs-priority", &emacs_priority /*
Priority for XEmacs to run at.
This value is effective only if set before XEmacs is dumped,
Vinternal_error_checking = Fcons (intern ("bufpos"),
Vinternal_error_checking);
#endif
-
- DEFVAR_CONST_LISP ("mail-lock-methods", &Vmail_lock_methods /*
-Mail spool locking methods supported by this instance of XEmacs.
-This is a list of symbols. Each of the symbols is one of the
-following: dot, lockf, flock, locking, mmdf.
-*/ );
- {
- Vmail_lock_methods = Qnil;
- Vmail_lock_methods = Fcons (intern ("dot"), Vmail_lock_methods);
-#ifdef HAVE_LOCKF
- Vmail_lock_methods = Fcons (intern ("lockf"), Vmail_lock_methods);
-#endif
-#ifdef HAVE_FLOCK
- Vmail_lock_methods = Fcons (intern ("flock"), Vmail_lock_methods);
-#endif
-#ifdef HAVE_MMDF
- Vmail_lock_methods = Fcons (intern ("mmdf"), Vmail_lock_methods);
-#endif
-#ifdef HAVE_LOCKING
- Vmail_lock_methods = Fcons (intern ("locking"), Vmail_lock_methods);
-#endif
- }
-
- DEFVAR_CONST_LISP ("configure-mail-lock-method", &Vconfigure_mail_lock_method /*
-Mail spool locking method suggested by configure. This is one
-of the symbols in MAIL-LOCK-METHODS.
-*/ );
- {
-#if defined(MAIL_LOCK_FLOCK) && defined(HAVE_FLOCK)
- Vconfigure_mail_lock_method = intern("flock");
-#elif defined(MAIL_LOCK_LOCKF) && defined(HAVE_LOCKF)
- Vconfigure_mail_lock_method = intern("lockf");
-#elif defined(MAIL_LOCK_MMDF) && defined(HAVE_MMDF)
- Vconfigure_mail_lock_method = intern("mmdf");
-#elif defined(MAIL_LOCK_LOCKING) && defined(HAVE_LOCKING)
- Vconfigure_mail_lock_method = intern("locking");
-#else
- Vconfigure_mail_lock_method = intern("dot");
-#endif
- }
+ Vinternal_error_checking = Fpurecopy (Vinternal_error_checking);
DEFVAR_LISP ("path-separator", &Vpath_separator /*
The directory separator in search paths, as a string.
complex_vars_of_emacs (void)
{
/* This is all related to path searching. */
-
+
DEFVAR_LISP ("emacs-program-name", &Vemacs_program_name /*
*Name of the Emacs variant.
For example, this may be \"xemacs\" or \"infodock\".
Vconfigure_lisp_directory = Qnil;
#endif
- DEFVAR_LISP ("module-directory", &Vmodule_directory /*
-*Directory of core dynamic modules that come with XEmacs.
-*/ );
- Vmodule_directory = Qnil;
-
- DEFVAR_LISP ("configure-module-directory", &Vconfigure_module_directory /*
-For internal use by the build procedure only.
-configure's idea of what MODULE-DIRECTORY will be.
-*/ );
-#ifdef PATH_MODULESEARCH
- Vconfigure_module_directory = Ffile_name_as_directory
- (build_string ((char *) PATH_MODULESEARCH));
-#else
- Vconfigure_module_directory = Qnil;
-#endif
-
DEFVAR_LISP ("configure-package-path", &Vconfigure_package_path /*
For internal use by the build procedure only.
configure's idea of what the package path will be.
Vconfigure_site_directory = Qnil;
#endif
- DEFVAR_LISP ("site-module-directory", &Vsite_module_directory /*
-*Directory of site-specific loadable modules that come with XEmacs.
-*/ );
- Vsite_module_directory = Qnil;
-
- DEFVAR_LISP ("configure-site-module-directory", &Vconfigure_site_module_directory /*
-For internal use by the build procedure only.
-configure's idea of what SITE-DIRECTORY will be.
-*/ );
-#ifdef PATH_SITE_MODULES
- Vconfigure_site_module_directory = Ffile_name_as_directory
- (build_string ((char *) PATH_SITE_MODULES));
-#else
- Vconfigure_site_module_directory = Qnil;
-#endif
-
DEFVAR_LISP ("doc-directory", &Vdoc_directory /*
*Directory containing the DOC file that comes with XEmacs.
This is usually the same as exec-directory.
#endif
}
-#if defined(__sgi) && !defined(PDUMP)
+#ifdef __sgi
/* This is so tremendously ugly I'd puke. But then, it works.
* The target is to override the static constructor from the
* libiflPNG.so library which is maskerading as libz, and
* cores on us when re-started from the dumped executable.
* This will have to go for 21.1 -- OG.
*/
-void __sti__iflPNGFile_c___(void);
void __sti__iflPNGFile_c___()
{
}