summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog5
-rw-r--r--src/callproc.c13
2 files changed, 15 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 9bc1a284be2..23e7753092a 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2001-12-07 Richard M. Stallman <rms@gnu.org>
+
+ * callproc.c (init_callproc): Set Vdata_directory based on the source
+ location whenever Emacs was run uninstalled.
+
2001-12-06 Paul Eggert <eggert@twinsun.com>
* config.in (HAVE_WORKING_VFORK): New #undefs.
diff --git a/src/callproc.c b/src/callproc.c
index 23f2b377b43..f35485f9fe8 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -1489,7 +1489,11 @@ init_callproc ()
#ifndef DOS_NT
/* MSDOS uses wrapped binaries, so don't do this. */
if (NILP (Fmember (tem, Vexec_path)))
- Vexec_path = nconc2 (Vexec_path, Fcons (tem, Qnil));
+ {
+ Vexec_path = decode_env_path ("EMACSPATH", PATH_EXEC);
+ Vexec_path = Fcons (tem, Vexec_path);
+ Vexec_path = nconc2 (decode_env_path ("PATH", ""), Vexec_path);
+ }
Vexec_directory = Ffile_name_as_directory (tem);
#endif /* not DOS_NT */
@@ -1512,12 +1516,15 @@ init_callproc ()
source directory. */
if (data_dir == 0)
{
- Lisp_Object tem, tem1, newdir;
+ Lisp_Object tem, tem1, srcdir;
+ srcdir = Fexpand_file_name (build_string ("../src/"),
+ build_string (PATH_DUMPLOADSEARCH));
tem = Fexpand_file_name (build_string ("GNU"), Vdata_directory);
tem1 = Ffile_exists_p (tem);
- if (NILP (tem1))
+ if (!NILP (Fequal (srcdir, Vinvocation_directory)) || NILP (tem1))
{
+ Lisp_Object newdir;
newdir = Fexpand_file_name (build_string ("../etc/"),
build_string (PATH_DUMPLOADSEARCH));
tem = Fexpand_file_name (build_string ("GNU"), newdir);