Fix bug #5447, whereby loading C:/foo.el.gz on MS-Windows would fail.
authorEli Zaretskii <eliz@gnu.org>
Fri, 22 Jan 2010 10:23:25 +0000 (12:23 +0200)
committerEli Zaretskii <eliz@gnu.org>
Fri, 22 Jan 2010 10:23:25 +0000 (12:23 +0200)
 jka-compr.el (jka-compr-load): If load-file is not in load-history,
 try its file-truename version.

lisp/ChangeLog
lisp/jka-compr.el

index a308a57..1dc503e 100644 (file)
@@ -1,3 +1,8 @@
+2010-01-22  Eli Zaretskii  <eliz@gnu.org>
+
+       * jka-compr.el (jka-compr-load): If load-file is not in
+       load-history, try its file-truename version.  (bug#5447)
+
 2010-01-21  Alan Mackenzie  <acm@muc.de>
 
        Fix a situation where deletion of a cpp construct throws an error.
index 12f48bd..34ffcc9 100644 (file)
@@ -590,7 +590,14 @@ There should be no more than seven characters after the final `/'."
          (or nomessage
              (message "Loading %s...done." file))
          ;; Fix up the load history to point at the right library.
-         (let ((l (assoc load-file load-history)))
+         (let ((l (or (assoc load-file load-history)
+                      ;; On MS-Windows, if load-file is in
+                      ;; temporary-file-directory, it will look like
+                      ;; "c:/DOCUME~1/USER/LOCALS~1/foo", whereas
+                      ;; readevalloop will record its truename in
+                      ;; load-history.  Therefore try truename if the
+                      ;; original name is not in load-history.
+                      (assoc (file-truename load-file) load-history))))
            ;; Remove .gz and .elc?.
            (while (file-name-extension file)
              (setq file (file-name-sans-extension file)))