+}
+
+/* This is run after init_cmdargs, so that Vinvocation_directory is valid. */
+
+init_callproc ()
+{
+ char *data_dir = egetenv ("EMACSDATA");
+
+ register char * sh;
+ Lisp_Object tempdir;
+
+#ifndef MSDOS
+ if (initialized && !NILP (Vinstallation_directory))
+ {
+ /* Add to the path the lib-src subdir of the installation dir. */
+ Lisp_Object tem;
+ tem = Fexpand_file_name (build_string ("lib-src"),
+ Vinstallation_directory);
+ if (NILP (Fmember (tem, Vexec_path)))
+ {
+ Vexec_path = nconc2 (Vexec_path, Fcons (tem, Qnil));
+ Vexec_directory = Ffile_name_as_directory (tem);
+
+ /* If we use ../lib-src, maybe use ../etc as well.
+ Do so if ../etc exists and has our DOC-... file in it. */
+ if (data_dir == 0)
+ {
+ tem = Fexpand_file_name (build_string ("etc"),
+ Vinstallation_directory);
+ 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