1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

Override possible change of next-error-last-buffer in next-error-function

* lisp/simple.el (next-error, next-error-internal):
Setq next-error-last-buffer after next-error-function call.
(Bug#28864)
This commit is contained in:
Juri Linkov 2017-11-06 23:40:31 +02:00
parent 1d8f8851a4
commit 9071ac63ae

View file

@ -279,23 +279,28 @@ To control which errors are matched, customize the variable
`compilation-error-regexp-alist'."
(interactive "P")
(if (consp arg) (setq reset t arg nil))
(when (setq next-error-last-buffer (next-error-find-buffer))
;; we know here that next-error-function is a valid symbol we can funcall
(with-current-buffer next-error-last-buffer
(funcall next-error-function (prefix-numeric-value arg) reset)
(when next-error-recenter
(recenter next-error-recenter))
(run-hooks 'next-error-hook))))
(let ((buffer (next-error-find-buffer)))
(when buffer
;; We know here that next-error-function is a valid symbol we can funcall
(with-current-buffer buffer
(funcall next-error-function (prefix-numeric-value arg) reset)
;; Override possible change of next-error-last-buffer in next-error-function
(setq next-error-last-buffer buffer)
(when next-error-recenter
(recenter next-error-recenter))
(run-hooks 'next-error-hook)))))
(defun next-error-internal ()
"Visit the source code corresponding to the `next-error' message at point."
(setq next-error-last-buffer (current-buffer))
;; we know here that next-error-function is a valid symbol we can funcall
(with-current-buffer next-error-last-buffer
(funcall next-error-function 0 nil)
(when next-error-recenter
(recenter next-error-recenter))
(run-hooks 'next-error-hook)))
(let ((buffer (current-buffer)))
;; We know here that next-error-function is a valid symbol we can funcall
(with-current-buffer buffer
(funcall next-error-function 0 nil)
;; Override possible change of next-error-last-buffer in next-error-function
(setq next-error-last-buffer buffer)
(when next-error-recenter
(recenter next-error-recenter))
(run-hooks 'next-error-hook))))
(defalias 'goto-next-locus 'next-error)
(defalias 'next-match 'next-error)