]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix bug #15805 with trying to load Lisp files before load-path is populated.
authorEli Zaretskii <eliz@gnu.org>
Tue, 5 Nov 2013 16:18:00 +0000 (18:18 +0200)
committerEli Zaretskii <eliz@gnu.org>
Tue, 5 Nov 2013 16:18:00 +0000 (18:18 +0200)
 lisp/startup.el (normal-top-level): Load the subdirs.el files before
 setting the locale environment.

lisp/ChangeLog
lisp/startup.el

index 6b7f169887cefeeb4dfa77f048900664bd2a7f3c..0a7442d435e36dda155e02173008a8ec27d37571 100644 (file)
@@ -1,3 +1,8 @@
+2013-11-05  Eli Zaretskii  <eliz@gnu.org>
+
+       * startup.el (normal-top-level): Load the subdirs.el files before
+       setting the locale environment.  (Bug#15805)
+
 2013-11-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * vc/vc-rcs.el (vc-rcs-parse): Make `gather' get e, b, and @-holes
index 963ee687a3b91214c240333644b6e84c97d7362e..2394c73b879cdc08861ead5400651c5a159eb947 100644 (file)
@@ -490,6 +490,32 @@ It is the default value of the variable `top-level'."
       (message "Back to top level.")
     (setq command-line-processed t)
 
+    ;; Look in each dir in load-path for a subdirs.el file.  If we
+    ;; find one, load it, which will add the appropriate subdirs of
+    ;; that dir into load-path.  This needs to be done before setting
+    ;; the locale environment, because the latter might need to load
+    ;; some support files.
+    ;; Look for a leim-list.el file too.  Loading it will register
+    ;; available input methods.
+    (let ((tail load-path)
+          (lispdir (expand-file-name "../lisp" data-directory))
+         ;; For out-of-tree builds, leim-list is generated in the build dir.
+;;;          (leimdir (expand-file-name "../leim" doc-directory))
+          dir)
+      (while tail
+        (setq dir (car tail))
+        (let ((default-directory dir))
+          (load (expand-file-name "subdirs.el") t t t))
+       ;; Do not scan standard directories that won't contain a leim-list.el.
+       ;; http://lists.gnu.org/archive/html/emacs-devel/2009-10/msg00502.html
+       (or (string-match (concat "\\`" lispdir) dir)
+           (let ((default-directory dir))
+             (load (expand-file-name "leim-list.el") t t t)))
+        ;; We don't use a dolist loop and we put this "setq-cdr" command at
+        ;; the end, because the subdirs.el files may add elements to the end
+        ;; of load-path and we want to take it into account.
+        (setq tail (cdr tail))))
+
     ;; Set the default strings to display in mode line for end-of-line
     ;; formats that aren't native to this platform.  This should be
     ;; done before calling set-locale-environment, as the latter might
@@ -557,29 +583,6 @@ It is the default value of the variable `top-level'."
     ;; `user-full-name' is now known; reset its standard-value here.
     (put 'user-full-name 'standard-value
         (list (default-value 'user-full-name)))
-    ;; Look in each dir in load-path for a subdirs.el file.
-    ;; If we find one, load it, which will add the appropriate subdirs
-    ;; of that dir into load-path,
-    ;; Look for a leim-list.el file too.  Loading it will register
-    ;; available input methods.
-    (let ((tail load-path)
-          (lispdir (expand-file-name "../lisp" data-directory))
-         ;; For out-of-tree builds, leim-list is generated in the build dir.
-;;;          (leimdir (expand-file-name "../leim" doc-directory))
-          dir)
-      (while tail
-        (setq dir (car tail))
-        (let ((default-directory dir))
-          (load (expand-file-name "subdirs.el") t t t))
-       ;; Do not scan standard directories that won't contain a leim-list.el.
-       ;; http://lists.gnu.org/archive/html/emacs-devel/2009-10/msg00502.html
-       (or (string-match (concat "\\`" lispdir) dir)
-           (let ((default-directory dir))
-             (load (expand-file-name "leim-list.el") t t t)))
-        ;; We don't use a dolist loop and we put this "setq-cdr" command at
-        ;; the end, because the subdirs.el files may add elements to the end
-        ;; of load-path and we want to take it into account.
-        (setq tail (cdr tail))))
     ;; If the PWD environment variable isn't accurate, delete it.
     (let ((pwd (getenv "PWD")))
       (and (stringp pwd)