Mercurial > emacs
changeset 42797:2fc2abcdc67c
(init_lread): Move the site-lisp dirs later in the path.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Thu, 17 Jan 2002 00:45:43 +0000 |
parents | 20463cf8bf90 |
children | dfa4a2991178 |
files | src/lread.c |
diffstat | 1 files changed, 28 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lread.c Thu Jan 17 00:27:39 2002 +0000 +++ b/src/lread.c Thu Jan 17 00:45:43 2002 +0000 @@ -3366,9 +3366,28 @@ Vload_path = decode_env_path (0, normal); if (!NILP (Vinstallation_directory)) { + Lisp_Object tem, tem1, sitelisp; + + /* Remove site-lisp dirs from path temporarily and store + them in sitelisp, then conc them on at the end so + they're always first in path. */ + sitelisp = Qnil; + while (1) + { + tem = Fcar (Vload_path); + tem1 = Fstring_match (build_string ("site-lisp"), + tem, Qnil); + if (!NILP (tem1)) + { + Vload_path = Fcdr (Vload_path); + sitelisp = Fcons (tem, sitelisp); + } + else + break; + } + /* Add to the path the lisp subdir of the installation dir, if it exists. */ - Lisp_Object tem, tem1; tem = Fexpand_file_name (build_string ("lisp"), Vinstallation_directory); tem1 = Ffile_exists_p (tem); @@ -3377,7 +3396,7 @@ if (NILP (Fmember (tem, Vload_path))) { turn_off_warning = 1; - Vload_path = nconc2 (Vload_path, Fcons (tem, Qnil)); + Vload_path = Fcons (tem, Vload_path); } } else @@ -3392,7 +3411,7 @@ if (!NILP (tem1)) { if (NILP (Fmember (tem, Vload_path))) - Vload_path = nconc2 (Vload_path, Fcons (tem, Qnil)); + Vload_path = Fcons (tem, Vload_path); } /* Add site-list under the installation dir, if it exists. */ @@ -3402,7 +3421,7 @@ if (!NILP (tem1)) { if (NILP (Fmember (tem, Vload_path))) - Vload_path = nconc2 (Vload_path, Fcons (tem, Qnil)); + Vload_path = Fcons (tem, Vload_path); } /* If Emacs was not built in the source directory, @@ -3430,21 +3449,23 @@ Vsource_directory); if (NILP (Fmember (tem, Vload_path))) - Vload_path = nconc2 (Vload_path, Fcons (tem, Qnil)); + Vload_path = Fcons (tem, Vload_path); tem = Fexpand_file_name (build_string ("leim"), Vsource_directory); if (NILP (Fmember (tem, Vload_path))) - Vload_path = nconc2 (Vload_path, Fcons (tem, Qnil)); + Vload_path = Fcons (tem, Vload_path); tem = Fexpand_file_name (build_string ("site-lisp"), Vsource_directory); if (NILP (Fmember (tem, Vload_path))) - Vload_path = nconc2 (Vload_path, Fcons (tem, Qnil)); + Vload_path = Fcons (tem, Vload_path); } } + if (!NILP (sitelisp)) + Vload_path = nconc2 (Fnreverse (sitelisp), Vload_path); } } }