aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/callproc.c28
-rw-r--r--src/lisp.h10
2 files changed, 27 insertions, 11 deletions
diff --git a/src/callproc.c b/src/callproc.c
index fb25a64718..11b5c7c408 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -57,7 +57,7 @@ extern char **environ;
#define max(a, b) ((a) > (b) ? (a) : (b))
-Lisp_Object Vexec_path, Vexec_directory;
+Lisp_Object Vexec_path, Vexec_directory, Vdata_directory;
Lisp_Object Vshell_file_name;
@@ -448,7 +448,9 @@ init_callproc ()
{
register char * sh;
register char **envp;
- Lisp_Object execdir;
+ Lisp_Object tempdir;
+
+ Vdata_directory = Ffile_name_as_directory (build_string (PATH_DATA));
/* Turn PATH_EXEC into a path. `==' is just a string which we know
will not be the name of an environment variable. */
@@ -456,14 +458,22 @@ init_callproc ()
Vexec_directory = Ffile_name_as_directory (Fcar (Vexec_path));
Vexec_path = nconc2 (decode_env_path ("PATH", ""), Vexec_path);
- execdir = Fdirectory_file_name (Vexec_directory);
- if (access (XSTRING (execdir)->data, 0) < 0)
+ tempdir = Fdirectory_file_name (Vexec_directory);
+ if (access (XSTRING (tempdir)->data, 0) < 0)
{
- printf ("Warning: executable/documentation dir (%s) does not exist.\n",
+ printf ("Warning: arch-dependent data dir (%s) does not exist.\n",
XSTRING (Vexec_directory)->data);
sleep (2);
}
+ tempdir = Fdirectory_file_name (Vdata_directory);
+ if (access (XSTRING (tempdir)->data, 0) < 0)
+ {
+ printf ("Warning: arch-independent data dir (%s) does not exist.\n",
+ XSTRING (Vdata_directory)->data);
+ sleep (2);
+ }
+
#ifdef VMS
Vshell_file_name = build_string ("*dcl*");
#else
@@ -495,8 +505,12 @@ Initialized from the SHELL environment variable.");
Each element is a string (directory name) or nil (try default directory).");
DEFVAR_LISP ("exec-directory", &Vexec_directory,
- "Directory that holds programs that come with GNU Emacs,\n\
-intended for Emacs to invoke.");
+ "Directory of architecture-dependent files that come with GNU Emacs,\n\
+especially executable programs intended for Emacs to invoke.");
+
+ DEFVAR_LISP ("data-directory", &Vdata_directory,
+ "Directory of architecture-independent files that come with GNU Emacs,\n\
+intended for Emacs to use.");
#ifndef MAINTAIN_ENVIRONMENT
DEFVAR_LISP ("process-environment", &Vprocess_environment,
diff --git a/src/lisp.h b/src/lisp.h
index 12fbd7fcb5..8ba14163f6 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -890,7 +890,7 @@ extern Lisp_Object Vpurify_flag;
extern Lisp_Object Fcons (), Flist(), Fmake_list ();
extern Lisp_Object Fmake_vector (), Fvector (), Fmake_symbol (), Fmake_marker ();
extern Lisp_Object Fmake_string (), build_string (), make_string ();
-extern Lisp_Object make_uninit_string ();
+extern Lisp_Object make_array (), make_uninit_string ();
extern Lisp_Object Fpurecopy (), make_pure_string ();
extern Lisp_Object pure_cons (), make_pure_vector ();
extern Lisp_Object Fgarbage_collect ();
@@ -900,6 +900,7 @@ extern Lisp_Object Vprin1_to_string_buffer;
extern Lisp_Object Fprin1 (), Fprin1_to_string (), Fprinc ();
extern Lisp_Object Fterpri (), Fprint ();
extern Lisp_Object Vstandard_output, Qstandard_output;
+extern Lisp_Object Qexternal_debugging_output;
extern void temp_output_buffer_setup (), temp_output_buffer_show ();
extern int print_level, print_escape_newlines;
extern Lisp_Object Qprint_escape_newlines;
@@ -1004,6 +1005,7 @@ extern Lisp_Object Fdowncase (), Fupcase (), Fcapitalize ();
/* defined in keyboard.c */
extern Lisp_Object Qdisabled;
+extern Lisp_Object Qmode_line, Qvertical_split;
extern Lisp_Object Vhelp_form, Vtop_level;
extern Lisp_Object Fdiscard_input (), Frecursive_edit ();
extern Lisp_Object Fcommand_execute (), Finput_pending_p ();
@@ -1027,6 +1029,8 @@ extern Lisp_Object Qwindowp;
extern Lisp_Object Fget_buffer_window ();
extern Lisp_Object Fsave_window_excursion ();
extern Lisp_Object Fset_window_configuration (), Fcurrent_window_configuration ();
+extern Lisp_Object Fcoordinates_in_window_p ();
+extern Lisp_Object Fwindow_at ();
/* defined in screen.c */
extern Lisp_Object Fscreenp ();
@@ -1057,8 +1061,6 @@ extern Lisp_Object Fset_screen_height ();
extern Lisp_Object Fset_screen_width ();
extern Lisp_Object Fset_screen_size ();
extern Lisp_Object Fset_screen_position ();
-extern Lisp_Object Fcoordinates_in_window_p ();
-extern Lisp_Object Flocate_window_from_coordinates ();
#ifndef HAVE_X11
extern Lisp_Object Frubber_band_rectangle ();
#endif /* HAVE_X11 */
@@ -1075,7 +1077,7 @@ extern Lisp_Object Fget_process (), Fget_buffer_process (), Fprocessp ();
extern Lisp_Object Fprocess_status (), Fkill_process ();
/* defined in callproc.c */
-extern Lisp_Object Vexec_path, Vexec_directory;
+extern Lisp_Object Vexec_path, Vexec_directory, Vdata_directory;
#ifdef MAINTAIN_ENVIRONMENT
/* defined in environ.c */