GNU bug report logs -
#24585
25.1; avoid hack in ggtags.el to run compilation-auto-jump timer
Previous Next
Reported by: Leo Liu <sdl.web <at> gmail.com>
Date: Sun, 2 Oct 2016 04:58:02 UTC
Severity: normal
Tags: moreinfo
Found in version 25.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
Message #68 received at 24585 <at> debbugs.gnu.org (full text, mbox):
On 2016-10-07 14:10 -0400, Stefan Monnier wrote:
> Hmm... calling compilation--ensure-parse *should* help.
> More specifically, if you call compilation--ensure-parse up to point-max
> from compilation-finish-functions, I can't think of any reason why
> compilation-error-properties should be called afterwards. If you can
> get a backtrace of when that happens, it would help.
>
> E.g. set a buffer-local var from compilation-finish-functions after
> calling compilation--ensure-parse, and then add an assert in
> compilation-error-properties to check that that var is not set yes.
To the best of my knowledge that seems to work with change like this to
compile.el:
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index f2e397a4..3a4f4b8b 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -1052,13 +1052,18 @@ POS and RES.")
l2
(setcdr l1 (cons (list ,key) l2)))))))
-(defun compilation-auto-jump (buffer pos)
- (with-current-buffer buffer
- (goto-char pos)
- (let ((win (get-buffer-window buffer 0)))
- (if win (set-window-point win pos)))
- (if compilation-auto-jump-to-first-error
- (compile-goto-error))))
+(defvar-local compilation-pending-auto-jump nil)
+
+(defun compilation-auto-jump (buffer)
+ (when (buffer-live-p buffer)
+ (with-current-buffer buffer
+ (when compilation-pending-auto-jump
+ (goto-char compilation-pending-auto-jump)
+ (let ((win (get-buffer-window buffer 0)))
+ (if win (set-window-point win compilation-pending-auto-jump)))
+ (setq compilation-pending-auto-jump nil)
+ (if compilation-auto-jump-to-first-error
+ (compile-goto-error))))))
;; This function is the central driver, called when font-locking to gather
;; all information needed to later jump to corresponding source code.
@@ -1126,8 +1131,8 @@ POS and RES.")
(when (and compilation-auto-jump-to-next
(>= type compilation-skip-threshold))
(kill-local-variable 'compilation-auto-jump-to-next)
- (run-with-timer 0 nil 'compilation-auto-jump
- (current-buffer) (match-beginning 0)))
+ (setq compilation-pending-auto-jump (match-beginning 0))
+ (run-with-timer 0 nil 'compilation-auto-jump (current-buffer)))
(compilation-internal-error-properties
file line end-line col end-col type fmt)))
This bug report was last modified 4 years and 227 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.