# HG changeset patch # User Sam Steingold # Date 1255380165 0 # Node ID e7f57b24c0a2923c2de066da9dd4ec2290bdaf73 # Parent be1e297cc4d50c4510c68fa1a61fcad028d039e5 (compilation-next-error-function): Fix the timestamps if the buffer has been visited before diff -r be1e297cc4d5 -r e7f57b24c0a2 lisp/ChangeLog --- a/lisp/ChangeLog Mon Oct 12 07:02:59 2009 +0000 +++ b/lisp/ChangeLog Mon Oct 12 20:42:45 2009 +0000 @@ -1,3 +1,8 @@ +2009-10-12 Sam Steingold + + * progmodes/compile.el (compilation-next-error-function): Fix the + timestamps if the buffer has been visited before + 2009-10-12 Glenn Morris * net/tramp-smb.el (tramp-smb-do-file-attributes-with-stat): diff -r be1e297cc4d5 -r e7f57b24c0a2 lisp/progmodes/compile.el --- a/lisp/progmodes/compile.el Mon Oct 12 07:02:59 2009 +0000 +++ b/lisp/progmodes/compile.el Mon Oct 12 20:42:45 2009 +0000 @@ -1944,16 +1944,13 @@ ;; (`omake -P' polls filesystem for changes and recompiles when needed ;; in the same process and buffer). ;; So, recalculate all markers for that file. - (unless (and (nth 3 loc) (marker-buffer (nth 3 loc)) - ;; There may be no timestamp info if the loc is a `fake-loc'. - ;; So we skip the time-check here, although we should maybe - ;; change `compilation-fake-loc' to add timestamp info. - (or (null (nth 4 loc)) - (equal (nth 4 loc) - (setq timestamp - (with-current-buffer - (marker-buffer (nth 3 loc)) - (visited-file-modtime)))))) + (unless (and (nth 3 loc) (marker-buffer (nth 3 loc)) (nthcdr 4 loc) + ;; There may be no timestamp info if the loc is a `fake-loc', + ;; but we just checked that the file has been visited before! + (equal (nth 4 loc) + (setq timestamp + (with-current-buffer (marker-buffer (nth 3 loc)) + (visited-file-modtime))))) (with-current-buffer (compilation-find-file marker (caar (nth 2 loc)) (cadr (car (nth 2 loc)))) (save-restriction