changeset 106951:89c890863220

Fix bug #5447, whereby loading C:/foo.el.gz on MS-Windows would fail. jka-compr.el (jka-compr-load): If load-file is not in load-history, try its file-truename version.
author Eli Zaretskii <eliz@gnu.org>
date Fri, 22 Jan 2010 12:23:25 +0200
parents ddd257e3f816
children 5acc26d2cc11 d3036620c45e
files lisp/ChangeLog lisp/jka-compr.el
diffstat 2 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Fri Jan 22 18:10:04 2010 +0900
+++ b/lisp/ChangeLog	Fri Jan 22 12:23:25 2010 +0200
@@ -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.
--- a/lisp/jka-compr.el	Fri Jan 22 18:10:04 2010 +0900
+++ b/lisp/jka-compr.el	Fri Jan 22 12:23:25 2010 +0200
@@ -590,7 +590,14 @@
 	  (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)))