From 77041513480f398d4490b291cbdc554efbdc7985 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 17 Oct 2007 16:24:33 +0000 Subject: [PATCH] (compilation-next-error-function): Fix timestamp handling, so compilation-fake-loc works again. --- lisp/ChangeLog | 3 +++ lisp/progmodes/compile.el | 15 ++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 555aa3ec85d..eaf88bbd6ee 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2007-10-17 Stefan Monnier + * progmodes/compile.el (compilation-next-error-function): Fix timestamp + handling, so compilation-fake-loc works again. + * server.el (server-select-display): Nop if we do not support m-f-o-d. (server-process-filter): Revert last change. diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 9ed7ba09de9..482cfee1b9b 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -1658,10 +1658,15 @@ This is the value of `next-error-function' in Compilation buffers." ;; in the same process and buffer). ;; So, recalculate all markers for that file. (unless (and (nth 3 loc) (marker-buffer (nth 3 loc)) - (equal (nth 4 loc) - (setq timestamp - (with-current-buffer (marker-buffer (nth 3 loc)) - (visited-file-modtime))))) + ;; 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)))))) (with-current-buffer (compilation-find-file marker (caar (nth 2 loc)) (cadr (car (nth 2 loc)))) (save-restriction @@ -1711,7 +1716,7 @@ region and the first line of the next region." (or (consp file) (setq file (list file))) (setq file (compilation-get-file-structure file)) ;; Between the current call to compilation-fake-loc and the first occurrence - ;; of an error message referring to `file', the data is only kept is the + ;; of an error message referring to `file', the data is only kept in the ;; weak hash-table compilation-locs, so we need to prevent this entry ;; in compilation-locs from being GC'd away. --Stef (push file compilation-gcpro) -- 2.39.5