From 7e93368366c143567013485ac8d1098c6797993a Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Thu, 12 May 1994 06:35:19 +0000 Subject: [PATCH] (init_callproc): Never set Vdata_directory based on the executable's location. But maybe set it from source dir. --- src/callproc.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/callproc.c b/src/callproc.c index 606d5e013e2..b3f88e56f66 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -851,10 +851,34 @@ init_callproc () { tem = Fexpand_file_name (build_string ("etc"), Vinstallation_directory); - Vdoc_directory = Vdata_directory = Ffile_name_as_directory (tem); + Vdoc_directory = Ffile_name_as_directory (tem); } } } + + /* Look for the files that should be in etc. We don't use + Vinstallation_directory, because these files are never installed + in /bin near the executable, and they are never in the build + directory when that's different from the source directory. + + Instead, if these files are not in the nominal place, we try the + source directory. */ + if (data_dir == 0) + { + Lisp_Object tem, tem1, newdir; + + tem = Fexpand_file_name (build_string ("GNU"), Vdata_directory); + tem1 = Ffile_exists_p (tem); + if (NILP (tem1)) + { + newdir = Fexpand_file_name (build_string ("../etc/"), + build_string (PATH_DUMPLOADSEARCH)); + tem = Fexpand_file_name (build_string ("GNU"), newdir); + tem1 = Ffile_exists_p (tem); + if (!NILP (tem1)) + Vdata_directory = newdir; + } + } #endif tempdir = Fdirectory_file_name (Vexec_directory); -- 2.39.5