comparison src/emacs.c @ 267:966663fcf606 r20-5b32

Import from CVS: tag r20-5b32
author cvs
date Mon, 13 Aug 2007 10:26:29 +0200
parents 8efd647ea9ca
children b2472a1930f2
comparison
equal deleted inserted replaced
266:18d185df8c54 267:966663fcf606
84 #ifdef DOUG_LEA_MALLOC 84 #ifdef DOUG_LEA_MALLOC
85 # include <malloc.h> 85 # include <malloc.h>
86 /* Preserves a pointer to the memory allocated that copies that 86 /* Preserves a pointer to the memory allocated that copies that
87 static data inside glibc's malloc. */ 87 static data inside glibc's malloc. */
88 void *malloc_state_ptr; 88 void *malloc_state_ptr;
89 /*#define SLB_MEMORY_CHECKING 1*/
90 /* I have observed free being passed the value 0x01 in gdb from somewhere */
91 /* in the locale initialization, except that as soon as the following */
92 /* monitoring code was added, the problem went away. I don't trust gdb */
93 /* at all with glibc, sigh. -slb */
94 #ifdef SLB_MEMORY_CHECKING
95 void slb_memory_checker(__malloc_ptr_t);
96 #endif
97 #endif 89 #endif
98 90
99 /* Variable whose value is symbol giving operating system type. */ 91 /* Variable whose value is symbol giving operating system type. */
100 Lisp_Object Vsystem_type; 92 Lisp_Object Vsystem_type;
101 93
110 Lisp_Object Vemacs_major_version; 102 Lisp_Object Vemacs_major_version;
111 Lisp_Object Vemacs_minor_version; 103 Lisp_Object Vemacs_minor_version;
112 Lisp_Object Vemacs_beta_version; 104 Lisp_Object Vemacs_beta_version;
113 Lisp_Object Vxemacs_codename; 105 Lisp_Object Vxemacs_codename;
114 106
115 /* Package directories built in at configure time */
116 Lisp_Object Vpackage_path;
117
118 /* The name under which XEmacs was invoked, with any leading directory 107 /* The name under which XEmacs was invoked, with any leading directory
119 names discarded. */ 108 names discarded. */
120 Lisp_Object Vinvocation_name; 109 Lisp_Object Vinvocation_name;
121 110
122 /* The directory name from which XEmacs was invoked. */ 111 /* The directory name from which XEmacs was invoked. */
126 /* The directory name in which to find subdirs such as lisp and etc. 115 /* The directory name in which to find subdirs such as lisp and etc.
127 nil means get them only from PATH_LOADSEARCH. */ 116 nil means get them only from PATH_LOADSEARCH. */
128 Lisp_Object Vinstallation_directory; 117 Lisp_Object Vinstallation_directory;
129 #endif 118 #endif
130 119
120 Lisp_Object Vexec_path, Vconfigure_exec_path;
121 Lisp_Object Vexec_directory;
122 Lisp_Object Vconfigure_lisp_directory;
123 Lisp_Object Vconfigure_package_path;
124 Lisp_Object Vdata_directory, Vconfigure_data_directory;
125 Lisp_Object Vdoc_directory, Vconfigure_doc_directory;
126 Lisp_Object Vconfigure_lock_directory;
127 Lisp_Object Vdata_directory_list;
128 Lisp_Object Vinfo_directory, Vconfigure_info_directory;
129 Lisp_Object Vsite_directory, Vconfigure_site_directory;
130 Lisp_Object Vconfigure_info_path;
131
132 /* The default base directory XEmacs is installed under. */
133 Lisp_Object Vconfigure_prefix_directory;
134
131 /* If nonzero, set XEmacs to run at this priority. This is also used 135 /* If nonzero, set XEmacs to run at this priority. This is also used
132 in child_setup and sys_suspend to make sure subshells run at normal 136 in child_setup and sys_suspend to make sure subshells run at normal
133 priority. */ 137 priority. */
134 int emacs_priority; 138 int emacs_priority;
135 139
170 /* Value of Lisp variable `noninteractive'. 174 /* Value of Lisp variable `noninteractive'.
171 Normally same as C variable `noninteractive' 175 Normally same as C variable `noninteractive'
172 but nothing terrible happens if user sets this one. */ 176 but nothing terrible happens if user sets this one. */
173 177
174 int noninteractive1; 178 int noninteractive1;
179
180 /* Nonzero means don't perform site-lisp searches at startup */
181 int inhibit_site_lisp;
175 182
176 /* Nonzero means don't perform package searches at startup */ 183 /* Nonzero means don't perform package searches at startup */
177 int inhibit_package_init; 184 int inhibit_package_init;
178 185
179 /* Nonzero means don't reload changed dumped lisp files at startup */ 186 /* Nonzero means don't reload changed dumped lisp files at startup */
504 int inhibit_window_system; 511 int inhibit_window_system;
505 #ifdef NeXT 512 #ifdef NeXT
506 extern int malloc_cookie; 513 extern int malloc_cookie;
507 #endif 514 #endif
508 515
509 #ifndef SYSTEM_MALLOC 516 #if !defined(SYSTEM_MALLOC) && !defined(HAVE_LIBMCHECK)
510 /* Make sure that any libraries we link against haven't installed a 517 /* Make sure that any libraries we link against haven't installed a
511 hook for a gmalloc of a potentially incompatible version. */ 518 hook for a gmalloc of a potentially incompatible version. */
519 /* If we're using libmcheck, the hooks have already been initialized, */
520 /* don't touch them. -slb */
512 __malloc_hook = NULL; 521 __malloc_hook = NULL;
513 __realloc_hook = NULL; 522 __realloc_hook = NULL;
514 #ifndef SLB_MEMORY_CHECKING
515 __free_hook = NULL; 523 __free_hook = NULL;
516 #endif
517 #endif /* not SYSTEM_MALLOC */ 524 #endif /* not SYSTEM_MALLOC */
518 525
519 noninteractive = 0; 526 noninteractive = 0;
520 527
521 #ifdef NeXT 528 #ifdef NeXT
530 if (initialized) 537 if (initialized)
531 if (malloc_jumpstart (malloc_cookie) != 0) 538 if (malloc_jumpstart (malloc_cookie) != 0)
532 printf ("malloc jumpstart failed!\n"); 539 printf ("malloc jumpstart failed!\n");
533 #endif /* NeXT */ 540 #endif /* NeXT */
534 541
535 #if defined (GNU_MALLOC) && defined (ERROR_CHECK_MALLOC) 542 #if defined (GNU_MALLOC) && \
536 #if 0 543 defined (ERROR_CHECK_MALLOC) && \
537 if (!initialized) 544 !defined (HAVE_LIBMCHECK)
538 init_free_hook (); 545 /* Prior to XEmacs 21, this was `#if 0'ed out. I'm putting it back in
539 #endif 546 because it provides extremely valuable debugging code. -slb */
547 init_free_hook ();
540 #endif 548 #endif
541 549
542 sort_args (argc, argv); 550 sort_args (argc, argv);
543 551
544 /* Map in shared memory, if we are using that. */ 552 /* Map in shared memory, if we are using that. */
675 if (argmatch (argv, argc, "-no-autoloads", "--no-autoloads", 683 if (argmatch (argv, argc, "-no-autoloads", "--no-autoloads",
676 7, NULL, &skip_args)) 684 7, NULL, &skip_args))
677 { 685 {
678 /* Inhibit everything */ 686 /* Inhibit everything */
679 inhibit_package_init = 1; 687 inhibit_package_init = 1;
688 inhibit_site_lisp = 1;
680 inhibit_update_autoloads = 1; 689 inhibit_update_autoloads = 1;
681 inhibit_update_dumped_lisp = 1; 690 inhibit_update_dumped_lisp = 1;
682 skip_args--; 691 skip_args--;
683 } 692 }
684 693
943 syms_of_device_mswindows (); 952 syms_of_device_mswindows ();
944 syms_of_event_mswindows (); 953 syms_of_event_mswindows ();
945 syms_of_frame_mswindows (); 954 syms_of_frame_mswindows ();
946 syms_of_objects_mswindows (); 955 syms_of_objects_mswindows ();
947 syms_of_select_mswindows (); 956 syms_of_select_mswindows ();
957 syms_of_glyphs_mswindows ();
948 #ifdef HAVE_MENUBARS 958 #ifdef HAVE_MENUBARS
949 syms_of_menubar_mswindows (); 959 syms_of_menubar_mswindows ();
950 #endif 960 #endif
951 #ifdef HAVE_MSW_C_DIRED 961 #ifdef HAVE_MSW_C_DIRED
952 syms_of_dired_mswindows (); 962 syms_of_dired_mswindows ();
980 990
981 #ifdef EMACS_BTL 991 #ifdef EMACS_BTL
982 syms_of_btl (); 992 syms_of_btl ();
983 #endif 993 #endif
984 994
985 #if defined (GNU_MALLOC) && defined (ERROR_CHECK_MALLOC) 995 #if defined (GNU_MALLOC) && \
986 #if 0 996 defined (ERROR_CHECK_MALLOC) && \
997 !defined (HAVE_LIBMCHECK)
998 /* Prior to XEmacs 21, this was `#if 0'ed out. -slb */
987 syms_of_free_hook (); 999 syms_of_free_hook ();
988 #endif
989 #endif 1000 #endif
990 1001
991 #ifdef TOOLTALK 1002 #ifdef TOOLTALK
992 syms_of_tooltalk (); 1003 syms_of_tooltalk ();
993 #endif 1004 #endif
1048 console_type_create_mswindows (); 1059 console_type_create_mswindows ();
1049 console_type_create_device_mswindows (); 1060 console_type_create_device_mswindows ();
1050 console_type_create_frame_mswindows (); 1061 console_type_create_frame_mswindows ();
1051 console_type_create_objects_mswindows (); 1062 console_type_create_objects_mswindows ();
1052 console_type_create_redisplay_mswindows (); 1063 console_type_create_redisplay_mswindows ();
1064 console_type_create_glyphs_mswindows ();
1053 # ifdef HAVE_SCROLLBARS 1065 # ifdef HAVE_SCROLLBARS
1054 console_type_create_scrollbar_mswindows (); 1066 console_type_create_scrollbar_mswindows ();
1055 # endif 1067 # endif
1056 #ifdef HAVE_MENUBARS 1068 #ifdef HAVE_MENUBARS
1057 console_type_create_menubar_mswindows (); 1069 console_type_create_menubar_mswindows ();
1105 1117
1106 image_instantiator_format_create (); 1118 image_instantiator_format_create ();
1107 #ifdef HAVE_X_WINDOWS 1119 #ifdef HAVE_X_WINDOWS
1108 image_instantiator_format_create_glyphs_x (); 1120 image_instantiator_format_create_glyphs_x ();
1109 #endif /* HAVE_X_WINDOWS */ 1121 #endif /* HAVE_X_WINDOWS */
1122 #ifdef HAVE_MS_WINDOWS
1123 image_instantiator_format_create_glyphs_mswindows ();
1124 #endif /* HAVE_MSWINDOWS_WINDOWS */
1110 1125
1111 /* Now initialize the lstream types and associated symbols. 1126 /* Now initialize the lstream types and associated symbols.
1112 Other than the first function below, the functions may 1127 Other than the first function below, the functions may
1113 make exactly the following function/macro calls: 1128 make exactly the following function/macro calls:
1114 1129
1310 vars_of_console_mswindows (); 1325 vars_of_console_mswindows ();
1311 vars_of_event_mswindows (); 1326 vars_of_event_mswindows ();
1312 vars_of_frame_mswindows (); 1327 vars_of_frame_mswindows ();
1313 vars_of_objects_mswindows (); 1328 vars_of_objects_mswindows ();
1314 vars_of_select_mswindows (); 1329 vars_of_select_mswindows ();
1330 vars_of_glyphs_mswindows ();
1315 #ifdef HAVE_SCROLLBARS 1331 #ifdef HAVE_SCROLLBARS
1316 vars_of_scrollbar_mswindows (); 1332 vars_of_scrollbar_mswindows ();
1317 #endif 1333 #endif
1318 #ifdef HAVE_MENUBARS 1334 #ifdef HAVE_MENUBARS
1319 vars_of_menubar_mswindows (); 1335 vars_of_menubar_mswindows ();
1412 /* These rely on the glyphs just created in the previous function, 1428 /* These rely on the glyphs just created in the previous function,
1413 and call Fadd_spec_to_specifier(), which relies on various 1429 and call Fadd_spec_to_specifier(), which relies on various
1414 variables initialized above. */ 1430 variables initialized above. */
1415 #ifdef HAVE_X_WINDOWS 1431 #ifdef HAVE_X_WINDOWS
1416 complex_vars_of_glyphs_x (); 1432 complex_vars_of_glyphs_x ();
1433 #endif
1434 #ifdef HAVE_MS_WINDOWS
1435 complex_vars_of_glyphs_mswindows ();
1417 #endif 1436 #endif
1418 1437
1419 /* This calls Fmake_glyph_internal(). */ 1438 /* This calls Fmake_glyph_internal(). */
1420 complex_vars_of_alloc (); 1439 complex_vars_of_alloc ();
1421 1440
1458 previous function. */ 1477 previous function. */
1459 complex_vars_of_minibuf (); 1478 complex_vars_of_minibuf ();
1460 1479
1461 /* These two might call Ffile_name_as_directory(), which 1480 /* These two might call Ffile_name_as_directory(), which
1462 might depend on all sorts of things; I'm not sure. */ 1481 might depend on all sorts of things; I'm not sure. */
1463 complex_vars_of_callproc (); 1482 complex_vars_of_emacs ();
1483
1464 #ifdef CLASH_DETECTION 1484 #ifdef CLASH_DETECTION
1465 complex_vars_of_filelock (); 1485 complex_vars_of_filelock ();
1466 #endif /* CLASH_DETECTION */ 1486 #endif /* CLASH_DETECTION */
1467 1487
1468 /* This creates a couple of basic keymaps and depends on Lisp 1488 /* This creates a couple of basic keymaps and depends on Lisp
1908 report_pure_usage (0, 0); 1928 report_pure_usage (0, 0);
1909 #endif 1929 #endif
1910 LONGJMP (run_temacs_catch, 1); 1930 LONGJMP (run_temacs_catch, 1);
1911 return Qnil; /* not reached; warning suppression */ 1931 return Qnil; /* not reached; warning suppression */
1912 } 1932 }
1913
1914 #ifdef SLB_MEMORY_CHECKING
1915 void
1916 slb_memory_checker(__malloc_ptr_t mem)
1917 {
1918 unsigned int u = (unsigned int)mem;
1919 /* 08f6b0a8 */
1920 if (u < 0x08000000) {
1921 printf("free(%08x)\n", u);
1922 /* abort(); */
1923 } else {
1924 __free_hook = 0;
1925
1926 free(mem);
1927
1928 __free_hook = slb_memory_checker;
1929 }
1930 }
1931 #endif
1932 1933
1933 /* ARGSUSED */ 1934 /* ARGSUSED */
1934 int 1935 int
1935 main (int argc, char **argv, char **envp) 1936 main (int argc, char **argv, char **envp)
1936 { 1937 {
1963 #ifdef QUANTIFY 1964 #ifdef QUANTIFY
1964 quantify_stop_recording_data (); 1965 quantify_stop_recording_data ();
1965 quantify_clear_data (); 1966 quantify_clear_data ();
1966 #endif /* QUANTIFY */ 1967 #endif /* QUANTIFY */
1967 1968
1968 #ifdef SLB_MEMORY_CHECKING
1969 __free_hook = slb_memory_checker;
1970 #endif
1971 suppress_early_backtrace = 0; 1969 suppress_early_backtrace = 0;
1972 lim_data = 0; /* force reinitialization of this variable */ 1970 lim_data = 0; /* force reinitialization of this variable */
1973 1971
1974 /* Lisp_Object must fit in a word; check VALBITS and GCTYPEBITS */ 1972 /* Lisp_Object must fit in a word; check VALBITS and GCTYPEBITS */
1975 assert (sizeof (Lisp_Object) == sizeof (void *)); 1973 assert (sizeof (Lisp_Object) == sizeof (void *));
2074 dont_check_for_quit = 1; 2072 dont_check_for_quit = 1;
2075 Vinhibit_quit = Qt; 2073 Vinhibit_quit = Qt;
2076 2074
2077 if (!preparing_for_armageddon) 2075 if (!preparing_for_armageddon)
2078 { 2076 {
2079 Lisp_Object concons; 2077 Lisp_Object concons, nextcons;
2080 2078
2081 /* Normally, go ahead and delete all the consoles now. 2079 /* Normally, go ahead and delete all the consoles now.
2082 Some unmentionably lame window systems (MS Wwwww...... eek, 2080 Some unmentionably lame window systems (MS Wwwww...... eek,
2083 I can't even say it) don't properly clean up after themselves, 2081 I can't even say it) don't properly clean up after themselves,
2084 and even for those that do, it might be cleaner this way. 2082 and even for those that do, it might be cleaner this way.
2085 If we're going down, however, we don't do this (might 2083 If we're going down, however, we don't do this (might
2086 be too dangerous), and if we get a crash somewhere within 2084 be too dangerous), and if we get a crash somewhere within
2087 this loop, we'll still autosave and won't try this again. */ 2085 this loop, we'll still autosave and won't try this again. */
2088 CONSOLE_LOOP (concons) 2086
2089 delete_console_internal (XCONSOLE (XCAR (concons)), 1, 1, 0); 2087 LIST_LOOP_DELETING(concons, nextcons, Vconsole_list)
2088 {
2089 /* There is very little point in deleting the stream console.
2090 It uses stdio, which should flush any buffered output and
2091 something can only go wrong. -slb */
2092 /* I changed my mind. There's a stupid hack in close to add
2093 a trailing newline. */
2094 /*if (!CONSOLE_STREAM_P (XCONSOLE (XCAR (concons))))*/
2095 delete_console_internal (XCONSOLE (XCAR (concons)), 1, 1, 0);
2096 }
2090 } 2097 }
2091 2098
2092 UNGCPRO; 2099 UNGCPRO;
2093 2100
2094 shut_down_emacs (0, ((STRINGP (arg)) ? arg : Qnil)); 2101 shut_down_emacs (0, ((STRINGP (arg)) ? arg : Qnil));
2369 2376
2370 #ifndef SEPCHAR 2377 #ifndef SEPCHAR
2371 #define SEPCHAR ':' 2378 #define SEPCHAR ':'
2372 #endif 2379 #endif
2373 2380
2374 DEFUN ("parse-colon-path", Fparse_colon_path, 1, 1, 0, /* 2381 DEFUN ("decode-path-internal", Fdecode_path_internal, 1, 1, 0, /*
2375 Explode a colon-separated list of paths into a string list. 2382 Explode a colon-separated list of paths into a string list.
2376 */ 2383 */
2377 (cd_path)) 2384 (cd_path))
2378 { 2385 {
2386 if (NILP(cd_path))
2387 {
2388 return Qnil;
2389 }
2379 CHECK_STRING (cd_path); 2390 CHECK_STRING (cd_path);
2380 2391
2381 return decode_path(XSTRING_DATA(cd_path)); 2392 return (!XSTRING_LENGTH(cd_path)) ?
2393 list1(Qnil) :
2394 decode_path(XSTRING_DATA(cd_path));
2382 } 2395 }
2383 2396
2384 Lisp_Object 2397 Lisp_Object
2385 decode_path (CONST char *path) 2398 decode_path (CONST char *path)
2386 { 2399 {
2396 while (1) 2409 while (1)
2397 { 2410 {
2398 p = strchr (path, SEPCHAR); 2411 p = strchr (path, SEPCHAR);
2399 if (!p) p = path + strlen (path); 2412 if (!p) p = path + strlen (path);
2400 lpath = Fcons (((p != path) 2413 lpath = Fcons (((p != path)
2401 #if 0 2414 #if 1
2402 ? Ffile_name_as_directory(make_string ((CONST Bufbyte *) path, p - path)) 2415 ? Ffile_name_as_directory(make_string ((CONST Bufbyte *) path, p - path))
2403 #else 2416 #else
2404 ? make_string ((CONST Bufbyte *) path, p - path) 2417 ? make_string ((CONST Bufbyte *) path, p - path)
2405 #endif 2418 #endif
2406 : Qnil), 2419 : Qnil),
2510 DEFSUBR (Fquantify_start_recording_data); 2523 DEFSUBR (Fquantify_start_recording_data);
2511 DEFSUBR (Fquantify_stop_recording_data); 2524 DEFSUBR (Fquantify_stop_recording_data);
2512 DEFSUBR (Fquantify_clear_data); 2525 DEFSUBR (Fquantify_clear_data);
2513 #endif /* QUANTIFY */ 2526 #endif /* QUANTIFY */
2514 2527
2515 DEFSUBR (Fparse_colon_path); 2528 DEFSUBR (Fdecode_path_internal);
2516 2529
2517 defsymbol (&Qkill_emacs_hook, "kill-emacs-hook"); 2530 defsymbol (&Qkill_emacs_hook, "kill-emacs-hook");
2518 defsymbol (&Qsave_buffers_kill_emacs, "save-buffers-kill-emacs"); 2531 defsymbol (&Qsave_buffers_kill_emacs, "save-buffers-kill-emacs");
2519 } 2532 }
2520 2533
2605 #ifndef XEMACS_CODENAME 2618 #ifndef XEMACS_CODENAME
2606 #define XEMACS_CODENAME "Noname" 2619 #define XEMACS_CODENAME "Noname"
2607 #endif 2620 #endif
2608 Vxemacs_codename = Fpurecopy (build_string (XEMACS_CODENAME)); 2621 Vxemacs_codename = Fpurecopy (build_string (XEMACS_CODENAME));
2609 2622
2610 DEFVAR_LISP ("package-path", &Vpackage_path /*
2611 List of directories configured for package searching.
2612 */ );
2613 #ifndef PACKAGE_PATH
2614 #define PACKAGE_PATH "~/.xemacs:" PATH_PREFIX "/lib/xemacs/packages"
2615 #endif
2616 Vpackage_path = decode_path(PACKAGE_PATH);
2617
2618 DEFVAR_BOOL ("noninteractive", &noninteractive1 /* 2623 DEFVAR_BOOL ("noninteractive", &noninteractive1 /*
2619 Non-nil means XEmacs is running without interactive terminal. 2624 Non-nil means XEmacs is running without interactive terminal.
2620 */ ); 2625 */ );
2621 2626
2622 DEFVAR_BOOL ("inhibit-package-init", &inhibit_package_init /* 2627 DEFVAR_BOOL ("inhibit-package-init", &inhibit_package_init /*
2623 Set to non-nil when the package-path should not be searched at startup. 2628 Set to non-nil when the package-path should not be searched at startup.
2629 */ );
2630
2631 DEFVAR_BOOL ("inhibit-site-lisp", &inhibit_site_lisp /*
2632 Set to non-nil when the site-lisp should not be searched at startup.
2624 */ ); 2633 */ );
2625 2634
2626 DEFVAR_BOOL ("inhibit-update-dumped-lisp", &inhibit_update_dumped_lisp /* 2635 DEFVAR_BOOL ("inhibit-update-dumped-lisp", &inhibit_update_dumped_lisp /*
2627 Set to non-nil when modified dumped lisp should not be reloaded at startup. 2636 Set to non-nil when modified dumped lisp should not be reloaded at startup.
2628 */ ); 2637 */ );
2642 before you compile XEmacs, to enable the code for this feature. 2651 before you compile XEmacs, to enable the code for this feature.
2643 */ ); 2652 */ );
2644 emacs_priority = 0; 2653 emacs_priority = 0;
2645 2654
2646 } 2655 }
2656
2657 void
2658 complex_vars_of_emacs (void)
2659 {
2660 DEFVAR_LISP ("exec-path", &Vexec_path /*
2661 *List of directories to search programs to run in subprocesses.
2662 Each element is a string (directory name) or nil (try default directory).
2663 */ );
2664 Vexec_path = Qnil;
2665
2666 DEFVAR_LISP ("configure-exec-path", &Vconfigure_exec_path /*
2667 For internal use by the build procedure only.
2668 configure's idea of what EXEC-PATH will be.
2669 */ );
2670 #ifdef PATH_EXEC
2671 Vconfigure_exec_path = decode_path (PATH_EXEC);
2672 #else
2673 Vconfigure_exec_path = Qnil;
2674 #endif
2675
2676 DEFVAR_LISP ("exec-directory", &Vexec_directory /*
2677 *Directory of architecture-dependent files that come with XEmacs,
2678 especially executable programs intended for XEmacs to invoke.
2679 */ );
2680 Vexec_directory = Qnil;
2681
2682 DEFVAR_LISP ("configure-lisp-directory", &Vconfigure_lisp_directory /*
2683 Directory of core Lisp files that come with XEmacs.
2684 */ );
2685 #ifdef PATH_LOADSEARCH
2686 Vconfigure_lisp_directory = Ffile_name_as_directory
2687 (build_string ((char *) PATH_LOADSEARCH));
2688 #else
2689 Vconfigure_lisp_directory = Qnil;
2690 #endif
2691
2692 DEFVAR_LISP ("configure-package-path", &Vconfigure_package_path /*
2693 For internal use by the build procedure only.
2694 configure's idea of what PACKAGE-DIRECTORY will be.
2695 */ );
2696 #ifdef PATH_PACKAGEPATH
2697 Vconfigure_package_path = decode_path (PATH_PACKAGEPATH);
2698 #else
2699 Vconfigure_package_path = Qnil;
2700 #endif
2701
2702 DEFVAR_LISP ("data-directory", &Vdata_directory /*
2703 *Directory of architecture-independent files that come with XEmacs,
2704 intended for XEmacs to use.
2705 Use of this variable in new code is almost never correct. See the
2706 function `locate-data-directory' and the variable `data-directory-list'.
2707 */ );
2708 Vdata_directory = Qnil;
2709
2710 DEFVAR_LISP ("configure-data-directory", &Vconfigure_data_directory /*
2711 For internal use by the build procedure only.
2712 configure's idea of what DATA-DIRECTORY will be.
2713 */ );
2714 #ifdef PATH_DATA
2715 Vconfigure_data_directory = Ffile_name_as_directory
2716 (build_string ((char *) PATH_DATA));
2717 #else
2718 Vconfigure_data_directory = Qnil;
2719 #endif
2720
2721 DEFVAR_LISP ("data-directory-list", &Vdata_directory_list /*
2722 *List of directories of architecture-independent files that come with XEmacs
2723 or were installed as packages, and are intended for XEmacs to use.
2724 */ );
2725 Vdata_directory_list = Qnil;
2726
2727 #ifdef CLASH_DETECTION
2728 DEFVAR_LISP ("configure-lock-directory", &Vconfigure_lock_directory /*
2729 For internal use by the build procedure only.
2730 configure's idea of what LOCK-DIRECTORY will be.
2731 */ );
2732 #ifdef PATH_LOCK
2733 Vconfigure_lock_directory = Ffile_name_as_directory
2734 (build_string ((char *) PATH_LOCK));
2735 #else
2736 Vconfigure_lock_directory = Qnil;
2737 #endif
2738 #endif /* CLASH_DETECTION */
2739
2740 DEFVAR_LISP ("configure-site-directory", &Vconfigure_site_directory /*
2741 For internal use by the build procedure only.
2742 configure's idea of what SITE-DIRECTORY will be.
2743 */ );
2744 #ifdef PATH_SITE
2745 Vconfigure_site_directory = Ffile_name_as_directory
2746 (build_string ((char *) PATH_SITE));
2747 #else
2748 Vconfigure_site_directory = Qnil;
2749 #endif
2750
2751 DEFVAR_LISP ("doc-directory", &Vdoc_directory /*
2752 *Directory containing the DOC file that comes with XEmacs.
2753 This is usually the same as exec-directory.
2754 */ );
2755 Vdoc_directory = Qnil;
2756
2757 DEFVAR_LISP ("configure-doc-directory", &Vconfigure_doc_directory /*
2758 For internal use by the build procedure only.
2759 configure's idea of what DOC-DIRECTORY will be.
2760 */ );
2761 #ifdef PATH_DOC
2762 Vconfigure_doc_directory = Ffile_name_as_directory
2763 (build_string ((char *) PATH_DOC));
2764 #else
2765 Vconfigure_doc_directory = Qnil;
2766 #endif
2767
2768 DEFVAR_LISP ("configure-prefix-directory", &Vconfigure_prefix_directory /*
2769 For internal use by the build procedure only.
2770 configure's idea of what PREFIX-DIRECTORY will be.
2771 */ );
2772 #ifdef PATH_PREFIX
2773 Vconfigure_prefix_directory = Ffile_name_as_directory
2774 (build_string ((char *) PATH_PREFIX));
2775 #else
2776 Vconfigure_prefix_directory = Qnil;
2777 #endif
2778
2779 DEFVAR_LISP ("configure-info-directory", &Vconfigure_info_directory /*
2780 For internal use by the build procedure only.
2781 This is the name of the directory in which the build procedure installed
2782 Emacs's info files; the default value for Info-default-directory-list
2783 includes this.
2784 */ );
2785 #ifdef PATH_INFO
2786 Vconfigure_info_directory =
2787 Ffile_name_as_directory (build_string (PATH_INFO));
2788 #else
2789 Vconfigure_info_directory = Qnil;
2790 #endif
2791
2792 DEFVAR_LISP ("configure-info-path", &Vconfigure_info_path /*
2793 The configured initial path for info documentation.
2794 */ );
2795 #ifdef PATH_INFOPATH
2796 Vconfigure_info_path = decode_path (PATH_INFOPATH);
2797 #else
2798 Vconfigure_info_path = Qnil;
2799 #endif
2800 }