aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJuanma Barranquero <[email protected]>2011-12-08 00:14:13 +0100
committerJuanma Barranquero <[email protected]>2011-12-08 00:14:13 +0100
commit6e44397c4a000df50237a57ef089989e6c4bbc5e (patch)
tree7af126f24c58f6e658bc72604cd2489670156e33 /src
parent1ea1c2fa5ffe544ddd96565e0958f12e8698136b (diff)
src/w32.c: Implement --no-site-lisp on Windows (bug#10208).
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/w32.c18
2 files changed, 23 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index f8d290774f..9ee5ccc1f5 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2011-12-07 Juanma Barranquero <[email protected]>
+
+ * 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 <[email protected]>
* lread.c (init_lread): If no_site_lisp, exclude site-lisp/ in
diff --git a/src/w32.c b/src/w32.c
index 304445e223..b26327462d 100644
--- 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