X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=blobdiff_plain;f=src%2Femacs.c;h=c3fc9fc7db31f4d3475817bdc9d42986badb0fb1;hp=4a6ab918e59b954af92f240b325a07c70e16def3;hb=113b194be934327de99a168d809271db252c07c4;hpb=cb9f6f4eadc44f1becb32cbbd1db26449e347755 diff --git a/src/emacs.c b/src/emacs.c index 4a6ab91..c3fc9fc 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -73,6 +73,10 @@ Boston, MA 02111-1307, USA. */ /* For PATH_EXEC */ #include +#ifdef HEAP_IN_DATA +void report_sheap_usage (int die_if_pure_storage_exceeded); +#endif + #if !defined SYSTEM_MALLOC && !defined DOUG_LEA_MALLOC extern void *(*__malloc_hook)(size_t); extern void *(*__realloc_hook)(void *, size_t); @@ -111,6 +115,7 @@ Lisp_Object Vsystem_configuration_options; /* 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 @@ -139,6 +144,8 @@ Lisp_Object Vemacs_program_name, Vemacs_program_version; 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; @@ -201,6 +208,9 @@ int noninteractive1; /* 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; @@ -219,6 +229,8 @@ static void sort_args (int argc, char **argv); Lisp_Object Qkill_emacs_hook; Lisp_Object Qsave_buffers_kill_emacs; +extern Lisp_Object Vlisp_EXEC_SUFFIXES; + /* Signal code for the fatal signal that was received */ static int fatal_error_code; @@ -705,6 +717,16 @@ main_1 (int argc, char **argv, char **envp, int restart) 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)) { @@ -891,9 +913,6 @@ main_1 (int argc, char **argv, char **envp, int restart) syms_of_dialog (); #endif syms_of_dired (); -#ifdef HAVE_SHLIB - syms_of_dll (); -#endif syms_of_doc (); syms_of_editfns (); syms_of_elhash (); @@ -938,6 +957,9 @@ main_1 (int argc, char **argv, char **envp, int restart) syms_of_menubar (); #endif syms_of_minibuf (); +#ifdef HAVE_SHLIB + syms_of_module (); +#endif syms_of_objects (); syms_of_print (); #if !defined (NO_SUBPROCESSES) @@ -953,6 +975,7 @@ main_1 (int argc, char **argv, char **envp, int restart) syms_of_rangetab (); syms_of_redisplay (); syms_of_search (); + syms_of_select (); syms_of_signal (); syms_of_sound (); syms_of_specifier (); @@ -1007,6 +1030,9 @@ main_1 (int argc, char **argv, char **envp, int restart) #ifdef HAVE_MSW_C_DIRED syms_of_dired_mswindows (); #endif +#ifdef WINDOWSNT + syms_of_ntproc (); +#endif #endif /* HAVE_MS_WINDOWS */ #ifdef MULE @@ -1015,7 +1041,7 @@ main_1 (int argc, char **argv, char **envp, int restart) syms_of_mule_charset (); #endif #ifdef FILE_CODING - syms_of_mule_coding (); + syms_of_file_coding (); #endif #ifdef MULE #ifdef HAVE_WNN @@ -1087,6 +1113,7 @@ main_1 (int argc, char **argv, char **envp, int restart) 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 @@ -1110,6 +1137,7 @@ main_1 (int argc, char **argv, char **envp, int restart) 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 @@ -1189,7 +1217,7 @@ main_1 (int argc, char **argv, char **envp, int restart) lstream_type_create (); #ifdef FILE_CODING - lstream_type_create_mule_coding (); + lstream_type_create_file_coding (); #endif #if defined (HAVE_MS_WINDOWS) && !defined(HAVE_MSG_SELECT) lstream_type_create_mswindows_selectable (); @@ -1260,6 +1288,7 @@ main_1 (int argc, char **argv, char **envp, int restart) vars_of_bytecode (); vars_of_callint (); vars_of_callproc (); + vars_of_chartab (); vars_of_cmdloop (); vars_of_cmds (); vars_of_console (); @@ -1328,6 +1357,12 @@ main_1 (int argc, char **argv, char **envp, int restart) vars_of_menubar (); #endif vars_of_minibuf (); +#ifdef HAVE_SHLIB + vars_of_module (); +#endif +#ifdef WINDOWSNT + vars_of_ntproc (); +#endif vars_of_objects (); vars_of_print (); @@ -1350,6 +1385,7 @@ main_1 (int argc, char **argv, char **envp, int restart) vars_of_scrollbar (); #endif vars_of_search (); + vars_of_select (); vars_of_sound (); vars_of_specifier (); vars_of_symbols (); @@ -1409,10 +1445,11 @@ main_1 (int argc, char **argv, char **envp, int restart) #ifdef MULE vars_of_mule (); + vars_of_mule_ccl (); vars_of_mule_charset (); #endif #ifdef FILE_CODING - vars_of_mule_coding (); + vars_of_file_coding (); #endif #ifdef MULE #ifdef HAVE_WNN @@ -1484,7 +1521,7 @@ main_1 (int argc, char **argv, char **envp, int restart) complex_vars_of_mule_charset (); #endif #if defined(FILE_CODING) - complex_vars_of_mule_coding (); + complex_vars_of_file_coding (); #endif /* This calls allocate_glyph(), which creates specifiers @@ -1658,7 +1695,8 @@ main_1 (int argc, char **argv, char **envp, int restart) else { Vinvocation_path = decode_env_path ("PATH", NULL); - locate_file (Vinvocation_path, Vinvocation_name, EXEC_SUFFIXES, + locate_file (Vinvocation_path, Vinvocation_name, + Vlisp_EXEC_SUFFIXES, &Vinvocation_directory, X_OK); } @@ -1996,7 +2034,7 @@ Do not call this. It will reinitialize your XEmacs. You'll be sorry. 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+1, char *); + DO_REALLOC (run_temacs_argv, run_temacs_argv_size, nargs+2, char *); memcpy (run_temacs_args, wampum, namesize); run_temacs_argv [0] = run_temacs_args; @@ -2013,13 +2051,9 @@ Do not call this. It will reinitialize your XEmacs. You'll be sorry. unbind_to (0, Qnil); /* this closes loadup.el */ purify_flag = 0; run_temacs_argc = nargs + 1; -#if 0 -#ifdef REPORT_PURE_USAGE - report_pure_usage (1, 0); -#else - report_pure_usage (0, 0); +#ifdef HEAP_IN_DATA + report_sheap_usage (0); #endif -#endif /* 0 */ LONGJMP (run_temacs_catch, 1); return Qnil; /* not reached; warning suppression */ } @@ -2428,10 +2462,8 @@ and announce itself normally when it is run. opurify = purify_flag; purify_flag = 0; -#ifdef DEBUG_XEMACS - report_pure_usage (1, 1); -#else - report_pure_usage (0, 1); +#ifdef HEAP_IN_DATA + report_sheap_usage (1); #endif fflush (stderr); @@ -2770,7 +2802,20 @@ Warning: this variable did not exist in Emacs versions earlier than: */ ); Vemacs_minor_version = make_int (EMACS_MINOR_VERSION); - DEFVAR_LISP ("emacs-beta-version", &Vemacs_beta_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 /* 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 @@ -2830,6 +2875,13 @@ Set to non-nil when the site-lisp should not be searched at startup. 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, @@ -2941,6 +2993,22 @@ configure's idea of what LISP-DIRECTORY will be. 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. @@ -3005,6 +3073,22 @@ configure's idea of what SITE-DIRECTORY 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. @@ -3074,6 +3158,7 @@ The configured initial path for info documentation. * 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___() { }