]> git.eshelyaron.com Git - emacs.git/commitdiff
src/w32.c: Implement --no-site-lisp on Windows (bug#10208).
authorJuanma Barranquero <lekktu@gmail.com>
Wed, 7 Dec 2011 23:14:13 +0000 (00:14 +0100)
committerJuanma Barranquero <lekktu@gmail.com>
Wed, 7 Dec 2011 23:14:13 +0000 (00:14 +0100)
src/ChangeLog
src/w32.c

index f8d290774fcad591f79e276c2141607f4e122a55..9ee5ccc1f5eea213f8311cf9bd9512bf0768fa36 100644 (file)
@@ -1,3 +1,8 @@
+2011-12-07  Juanma Barranquero  <lekktu@gmail.com>
+
+       * w32.c (init_environment): If no_site_lisp, remove site-lisp
+       dirs from the default value of EMACSLOADPATH (bug#10208).
+
 2011-12-07  Glenn Morris  <rgm@gnu.org>
 
        * lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
index 304445e2238f9c418f7686af9d989f96e1281420..b26327462d87ab5cf966546924363fb39b189169 100644 (file)
--- a/src/w32.c
+++ b/src/w32.c
@@ -1654,6 +1654,24 @@ init_environment (char ** argv)
         }
     }
 
+  /* When Emacs is invoked with --no-site-lisp, we must remove the
+     site-lisp directories from the default value of EMACSLOADPATH.
+     This assumes that the site-lisp entries are at the front, and
+     that additional entries do exist.  */
+  if (no_site_lisp)
+    {
+      for (i = 0; i < N_ENV_VARS; i++)
+        {
+          if (strcmp (env_vars[i].name, "EMACSLOADPATH") == 0)
+            {
+              char *site;
+              while ((site = strstr (env_vars[i].def_value, "site-lisp")))
+                env_vars[i].def_value = strchr (site, ';') + 1;
+              break;
+            }
+        }
+    }
+
 #define SET_ENV_BUF_SIZE (4 * MAX_PATH)        /* to cover EMACSLOADPATH */
 
     /* Treat emacs_dir specially: set it unconditionally based on our