diff src/callproc.c @ 32:e04119814345 r19-15b99

Import from CVS: tag r19-15b99
author cvs
date Mon, 13 Aug 2007 08:52:56 +0200
parents 859a2309aef8
children 8d2a9b52c682
line wrap: on
line diff
--- a/src/callproc.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/callproc.c	Mon Aug 13 08:52:56 2007 +0200
@@ -49,7 +49,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;
@@ -946,6 +946,7 @@
   if (!initialized)
     {
       Vdata_directory = Qnil;
+      Vsite_directory = Qnil;
       Vdoc_directory  = Qnil;
       Vexec_path      = Qnil;
     }
@@ -953,6 +954,7 @@
 #endif
     {
       char *data_dir = egetenv ("EMACSDATA");
+      char *site_dir = egetenv ("EMACSSITE");
       char *doc_dir  = egetenv ("EMACSDOC");
     
 #ifdef PATH_DATA
@@ -963,6 +965,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
@@ -974,6 +980,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.  */
@@ -1032,6 +1043,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
@@ -1120,6 +1149,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. */