emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r106841: init_lread fix for bug#10208


From: Glenn Morris
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r106841: init_lread fix for bug#10208.
Date: Tue, 10 Jan 2012 19:56:25 -0500
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 106841
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Tue 2012-01-10 19:56:25 -0500
message:
  init_lread fix for bug#10208.
  
  * src/lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
  from load-path also when installation-directory is nil.
modified:
  src/ChangeLog
  src/lread.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-01-10 20:37:10 +0000
+++ b/src/ChangeLog     2012-01-11 00:56:25 +0000
@@ -1,3 +1,8 @@
+2012-01-11  Glenn Morris  <address@hidden>
+
+       * lread.c (init_lread): If no-site-lisp, remove site-lisp dirs
+       from load-path also when installation-directory is nil.  (Bug#10208)
+
 2012-01-10  Glenn Morris  <address@hidden>
 
        * emacs.c (syms_of_emacs) <installation-directory>: Doc fix.

=== modified file 'src/lread.c'
--- a/src/lread.c       2012-01-10 22:41:09 +0000
+++ b/src/lread.c       2012-01-11 00:56:25 +0000
@@ -4169,17 +4169,17 @@
       if (! NILP (Fequal (dump_path, Vload_path)))
        {
          Vload_path = decode_env_path (0, normal);
-         if (!NILP (Vinstallation_directory))
+         if (no_site_lisp || !NILP (Vinstallation_directory))
            {
              Lisp_Object tem, tem1, sitelisp;
 
              /* Remove "site-lisp" dirs from front of path temporarily
                 and store them in sitelisp, then conc them on at the
                 end so they're always first in path.
-                 Note that this won't work if you used a
-                 --enable-locallisppath element that does not happen
+                Note that this won't work if you used a
+                --enable-locallisppath element that does not happen
                 to contain "site-lisp" in its name.
-              */
+             */
              sitelisp = Qnil;
              while (1)
                {
@@ -4195,93 +4195,96 @@
                    break;
                }
 
-             /* Add to the path the lisp subdir of the
-                installation dir, if it exists.  */
-             tem = Fexpand_file_name (build_string ("lisp"),
-                                      Vinstallation_directory);
-             tem1 = Ffile_exists_p (tem);
-             if (!NILP (tem1))
-               {
-                 if (NILP (Fmember (tem, Vload_path)))
-                   {
-                     turn_off_warning = 1;
-                     Vload_path = Fcons (tem, Vload_path);
-                   }
-               }
-             else
-               /* That dir doesn't exist, so add the build-time
-                  Lisp dirs instead.  */
-               Vload_path = nconc2 (Vload_path, dump_path);
-
-             /* Add leim under the installation dir, if it exists.  */
-             tem = Fexpand_file_name (build_string ("leim"),
-                                      Vinstallation_directory);
-             tem1 = Ffile_exists_p (tem);
-             if (!NILP (tem1))
-               {
-                 if (NILP (Fmember (tem, Vload_path)))
-                   Vload_path = Fcons (tem, Vload_path);
-               }
-
-             /* Add site-lisp under the installation dir, if it exists.  */
-             if (!no_site_lisp)
-               {
-                 tem = Fexpand_file_name (build_string ("site-lisp"),
-                                          Vinstallation_directory);
-                 tem1 = Ffile_exists_p (tem);
-                 if (!NILP (tem1))
-                   {
-                     if (NILP (Fmember (tem, Vload_path)))
-                       Vload_path = Fcons (tem, Vload_path);
-                   }
-               }
-
-             /* If Emacs was not built in the source directory,
-                and it is run from where it was built, add to load-path
-                the lisp, leim and site-lisp dirs under that directory.  */
-
-             if (NILP (Fequal (Vinstallation_directory, Vsource_directory)))
-               {
-                 Lisp_Object tem2;
-
-                 tem = Fexpand_file_name (build_string ("src/Makefile"),
-                                          Vinstallation_directory);
-                 tem1 = Ffile_exists_p (tem);
-
-                 /* Don't be fooled if they moved the entire source tree
-                    AFTER dumping Emacs.  If the build directory is indeed
-                    different from the source dir, src/Makefile.in and
-                    src/Makefile will not be found together.  */
-                 tem = Fexpand_file_name (build_string ("src/Makefile.in"),
-                                          Vinstallation_directory);
-                 tem2 = Ffile_exists_p (tem);
-                 if (!NILP (tem1) && NILP (tem2))
-                   {
-                     tem = Fexpand_file_name (build_string ("lisp"),
-                                              Vsource_directory);
-
-                     if (NILP (Fmember (tem, Vload_path)))
-                       Vload_path = Fcons (tem, Vload_path);
-
-                     tem = Fexpand_file_name (build_string ("leim"),
-                                              Vsource_directory);
-
-                     if (NILP (Fmember (tem, Vload_path)))
-                       Vload_path = Fcons (tem, Vload_path);
-
-                     if (!no_site_lisp)
-                       {
-                         tem = Fexpand_file_name (build_string ("site-lisp"),
-                                                  Vsource_directory);
-
-                         if (NILP (Fmember (tem, Vload_path)))
-                           Vload_path = Fcons (tem, Vload_path);
-                       }
-                   }
-               }
+             if (!NILP (Vinstallation_directory))
+               {
+                 /* Add to the path the lisp subdir of the
+                    installation dir, if it exists.  */
+                 tem = Fexpand_file_name (build_string ("lisp"),
+                                          Vinstallation_directory);
+                 tem1 = Ffile_exists_p (tem);
+                 if (!NILP (tem1))
+                   {
+                     if (NILP (Fmember (tem, Vload_path)))
+                       {
+                         turn_off_warning = 1;
+                         Vload_path = Fcons (tem, Vload_path);
+                       }
+                   }
+                 else
+                   /* That dir doesn't exist, so add the build-time
+                      Lisp dirs instead.  */
+                   Vload_path = nconc2 (Vload_path, dump_path);
+
+                 /* Add leim under the installation dir, if it exists.  */
+                 tem = Fexpand_file_name (build_string ("leim"),
+                                          Vinstallation_directory);
+                 tem1 = Ffile_exists_p (tem);
+                 if (!NILP (tem1))
+                   {
+                     if (NILP (Fmember (tem, Vload_path)))
+                       Vload_path = Fcons (tem, Vload_path);
+                   }
+
+                 /* Add site-lisp under the installation dir, if it exists.  */
+                 if (!no_site_lisp)
+                   {
+                     tem = Fexpand_file_name (build_string ("site-lisp"),
+                                              Vinstallation_directory);
+                     tem1 = Ffile_exists_p (tem);
+                     if (!NILP (tem1))
+                       {
+                         if (NILP (Fmember (tem, Vload_path)))
+                           Vload_path = Fcons (tem, Vload_path);
+                       }
+                   }
+
+                 /* If Emacs was not built in the source directory,
+                    and it is run from where it was built, add to load-path
+                    the lisp, leim and site-lisp dirs under that directory.  */
+
+                 if (NILP (Fequal (Vinstallation_directory, 
Vsource_directory)))
+                   {
+                     Lisp_Object tem2;
+
+                     tem = Fexpand_file_name (build_string ("src/Makefile"),
+                                              Vinstallation_directory);
+                     tem1 = Ffile_exists_p (tem);
+
+                     /* Don't be fooled if they moved the entire source tree
+                        AFTER dumping Emacs.  If the build directory is indeed
+                        different from the source dir, src/Makefile.in and
+                        src/Makefile will not be found together.  */
+                     tem = Fexpand_file_name (build_string ("src/Makefile.in"),
+                                              Vinstallation_directory);
+                     tem2 = Ffile_exists_p (tem);
+                     if (!NILP (tem1) && NILP (tem2))
+                       {
+                         tem = Fexpand_file_name (build_string ("lisp"),
+                                                  Vsource_directory);
+
+                         if (NILP (Fmember (tem, Vload_path)))
+                           Vload_path = Fcons (tem, Vload_path);
+
+                         tem = Fexpand_file_name (build_string ("leim"),
+                                                  Vsource_directory);
+
+                         if (NILP (Fmember (tem, Vload_path)))
+                           Vload_path = Fcons (tem, Vload_path);
+
+                         if (!no_site_lisp)
+                           {
+                             tem = Fexpand_file_name (build_string 
("site-lisp"),
+                                                      Vsource_directory);
+
+                             if (NILP (Fmember (tem, Vload_path)))
+                               Vload_path = Fcons (tem, Vload_path);
+                           }
+                       }
+                   } /* Vinstallation_directory != Vsource_directory */
+               }     /* if Vinstallation_directory */
              if (!NILP (sitelisp) && !no_site_lisp)
                Vload_path = nconc2 (Fnreverse (sitelisp), Vload_path);
-           } /* if Vinstallation_directory */
+           } /* if Vinstallation_directory || no_site_lisp */
        }     /* if dump_path == Vload_path */
     }
   else                          /* !initialized */


reply via email to

[Prev in Thread] Current Thread [Next in Thread]