From: Richard M. Stallman Date: Thu, 17 Jan 2002 00:47:16 +0000 (+0000) Subject: (init_lread): Move the site-lisp dirs later in the path. X-Git-Tag: ttn-vms-21-2-B4~17107 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3ddff1383522ecb71800c1ecf418857fd36640a2;p=emacs.git (init_lread): Move the site-lisp dirs later in the path. --- diff --git a/src/ChangeLog b/src/ChangeLog index 57e508f9f27..dd3b14ee103 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2002-01-16 Henrik Enberg + + * lread.c (init_lread): Move the site-lisp dirs later in the path. + 2002-01-16 Kim F. Storm * xterm.c (x_erase_phys_cursor): Don't erase cursor if cursor row diff --git a/src/lread.c b/src/lread.c index 758105d16f8..ae8339ac3d0 100644 --- a/src/lread.c +++ b/src/lread.c @@ -3366,9 +3366,28 @@ init_lread () 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 @@ init_lread () 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 @@ init_lread () 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 @@ init_lread () 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 @@ init_lread () 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); } } }