changeset 78578:be466566559a

(compilation-get-file-structure): Make use of the directory part when checking for an existing entry, to handle files with same basename in different directories.
author Glenn Morris <rgm@gnu.org>
date Fri, 17 Aug 2007 07:16:17 +0000
parents 1486b1d4b4a1
children bd4ae2a657e3
files lisp/progmodes/compile.el
diffstat 1 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/compile.el	Fri Aug 17 07:15:55 2007 +0000
+++ b/lisp/progmodes/compile.el	Fri Aug 17 07:16:17 2007 +0000
@@ -1935,7 +1935,13 @@
 	;; Store it for the possibly unnormalized name
 	(puthash file
 		 ;; Retrieve or create file-structure for normalized name
-		 (or (gethash (list filename) compilation-locs)
+		 ;; The gethash used to not use spec-directory, but
+		 ;; this leads to errors when files in different
+		 ;; directories have the same name:
+		 ;; http://lists.gnu.org/archive/html/emacs-devel/2007-08/msg00463.html
+		 (or (gethash (cons filename spec-directory) compilation-locs)
+		     ;; TODO should this, without spec-directory, be
+		     ;; done at all?
 		     (puthash (list filename)
 			      (list (list filename spec-directory) fmt)
 			      compilation-locs))