diff src/callproc.c @ 110:fe104dbd9147 r20-1b7

Import from CVS: tag r20-1b7
author cvs
date Mon, 13 Aug 2007 09:19:45 +0200
parents 4be1180a9e89
children 9f59509498e1
line wrap: on
line diff
--- a/src/callproc.c	Mon Aug 13 09:18:41 2007 +0200
+++ b/src/callproc.c	Mon Aug 13 09:19:45 2007 +0200
@@ -55,7 +55,7 @@
 #endif /* DOS_NT */
 
 Lisp_Object Vexec_path, Vexec_directory, Vdata_directory, Vdoc_directory;
-Lisp_Object Vconfigure_info_directory;
+Lisp_Object Vconfigure_info_directory, Vsite_directory;
 
 /* The default base directory XEmacs is installed under. */
 Lisp_Object Vprefix_directory;
@@ -959,6 +959,7 @@
   if (!initialized)
     {
       Vdata_directory = Qnil;
+      Vsite_directory = Qnil;
       Vdoc_directory  = Qnil;
       Vexec_path      = Qnil;
     }
@@ -966,6 +967,7 @@
 #endif
     {
       char *data_dir = egetenv ("EMACSDATA");
+      char *site_dir = egetenv ("EMACSSITE");
       char *doc_dir  = egetenv ("EMACSDOC");
     
 #ifdef PATH_DATA
@@ -976,6 +978,10 @@
       if (!doc_dir)
 	doc_dir = (char *) PATH_DOC;
 #endif
+#ifdef PATH_SITE
+      if (!site_dir)
+	site_dir = (char *) PATH_SITE;
+#endif
     
       if (data_dir)
 	Vdata_directory = Ffile_name_as_directory
@@ -987,6 +993,11 @@
 	  (build_string (doc_dir));
       else
 	Vdoc_directory = Qnil;
+      if (site_dir)
+	Vsite_directory = Ffile_name_as_directory
+	  (build_string (site_dir));
+      else
+	Vsite_directory = Qnil;
 
       /* Check the EMACSPATH environment variable, defaulting to the
 	 PATH_EXEC path from paths.h.  */
@@ -1045,6 +1056,24 @@
 	}
     }
   
+  if (!NILP (Vsite_directory))
+    {
+      tempdir = Fdirectory_file_name (Vsite_directory);
+      if (access ((char *) XSTRING_DATA (tempdir), 0) < 0)
+	{
+	  /* If the hard-coded path is bogus, fail silently.
+	     This will allow the normal heuristics to make an attempt. */
+#if 0
+	  warn_when_safe
+	    (Qpath, Qwarning,
+	     "Warning: machine-independent site dir (%s) does not exist.\n",
+	     XSTRING_DATA (Vsite_directory));
+#else
+	  Vsite_directory = Qnil;
+#endif
+	}
+    }
+  
 #ifdef PATH_PREFIX
   Vprefix_directory = build_string ((char *) PATH_PREFIX);
 #else
@@ -1133,6 +1162,11 @@
 intended for Emacs to use.
 */ );
 
+  DEFVAR_LISP ("site-directory", &Vsite_directory /*
+Directory of architecture-independent files that do not come with XEmacs,
+intended for Emacs to use.
+*/ );
+
   /* FSF puts the DOC file into data-directory.  They do a bunch of
      contortions to attempt to put everything into the DOC file
      whether the support is there or not. */