emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/src/lread.c


From: Richard M. Stallman
Subject: [Emacs-diffs] Changes to emacs/src/lread.c
Date: Wed, 16 Jan 2002 19:45:43 -0500

Index: emacs/src/lread.c
diff -c emacs/src/lread.c:1.275 emacs/src/lread.c:1.276
*** emacs/src/lread.c:1.275     Sat Dec 29 22:24:17 2001
--- emacs/src/lread.c   Wed Jan 16 19:45:43 2002
***************
*** 3366,3374 ****
          Vload_path = decode_env_path (0, normal);
          if (!NILP (Vinstallation_directory))
            {
              /* 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);
--- 3366,3393 ----
          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.  */
              tem = Fexpand_file_name (build_string ("lisp"),
                                       Vinstallation_directory);
              tem1 = Ffile_exists_p (tem);
***************
*** 3377,3383 ****
                  if (NILP (Fmember (tem, Vload_path)))
                    {
                      turn_off_warning = 1;
!                     Vload_path = nconc2 (Vload_path, Fcons (tem, Qnil));
                    }
                }
              else
--- 3396,3402 ----
                  if (NILP (Fmember (tem, Vload_path)))
                    {
                      turn_off_warning = 1;
!                     Vload_path = Fcons (tem, Vload_path);
                    }
                }
              else
***************
*** 3392,3398 ****
              if (!NILP (tem1))
                {
                  if (NILP (Fmember (tem, Vload_path)))
!                   Vload_path = nconc2 (Vload_path, Fcons (tem, Qnil));
                }
  
              /* Add site-list under the installation dir, if it exists.  */
--- 3411,3417 ----
              if (!NILP (tem1))
                {
                  if (NILP (Fmember (tem, Vload_path)))
!                   Vload_path = Fcons (tem, Vload_path);
                }
  
              /* Add site-list under the installation dir, if it exists.  */
***************
*** 3402,3408 ****
              if (!NILP (tem1))
                {
                  if (NILP (Fmember (tem, Vload_path)))
!                   Vload_path = nconc2 (Vload_path, Fcons (tem, Qnil));
                }
  
              /* If Emacs was not built in the source directory,
--- 3421,3427 ----
              if (!NILP (tem1))
                {
                  if (NILP (Fmember (tem, Vload_path)))
!                   Vload_path = Fcons (tem, Vload_path);
                }
  
              /* If Emacs was not built in the source directory,
***************
*** 3430,3450 ****
                                               Vsource_directory);
  
                      if (NILP (Fmember (tem, Vload_path)))
!                       Vload_path = nconc2 (Vload_path, Fcons (tem, Qnil));
  
                      tem = Fexpand_file_name (build_string ("leim"),
                                               Vsource_directory);
  
                      if (NILP (Fmember (tem, Vload_path)))
!                       Vload_path = nconc2 (Vload_path, Fcons (tem, Qnil));
  
                      tem = Fexpand_file_name (build_string ("site-lisp"),
                                               Vsource_directory);
  
                      if (NILP (Fmember (tem, Vload_path)))
!                       Vload_path = nconc2 (Vload_path, Fcons (tem, Qnil));
                    }
                }
            }
        }
      }
--- 3449,3471 ----
                                               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);
  
                      tem = Fexpand_file_name (build_string ("site-lisp"),
                                               Vsource_directory);
  
                      if (NILP (Fmember (tem, Vload_path)))
!                       Vload_path = Fcons (tem, Vload_path);
                    }
                }
+             if (!NILP (sitelisp))
+               Vload_path = nconc2 (Fnreverse (sitelisp), Vload_path);
            }
        }
      }



reply via email to

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