1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-14 09:39:42 +00:00

(next-error): Handle zero and negative prefix args.

This commit is contained in:
Roland McGrath 1993-08-11 21:26:38 +00:00
parent a588e041b4
commit ed814f55e1

View File

@ -664,7 +664,7 @@ other kinds of prefix arguments are ignored."
(next-error 1))
(defun compilation-buffer-p (buffer)
(defsubst compilation-buffer-p (buffer)
(assq 'compilation-error-list (buffer-local-variables buffer)))
;; Return a compilation buffer.
@ -724,7 +724,9 @@ See variables `compilation-parse-errors-function' and
;; We want to pass a number here only if
;; we got a numeric prefix arg, not just C-u.
(and (not (consp argp))
(1- (prefix-numeric-value argp))))
(if (< (prefix-numeric-value argp) 1)
0
(1- (prefix-numeric-value argp)))))
;; Make ARGP nil if the prefix arg was just C-u,
;; since that means to reparse the errors, which the
;; compile-reinitialize-errors call just did.
@ -735,8 +737,21 @@ See variables `compilation-parse-errors-function' and
(save-excursion
(set-buffer compilation-last-buffer)
;; compilation-error-list points to the "current" error.
(setq next-errors (nthcdr (1- (prefix-numeric-value argp))
(setq next-errors
(if (> (prefix-numeric-value argp) 0)
(nthcdr (1- (prefix-numeric-value argp))
compilation-error-list)
;; Zero or negative arg; we need to move back in the list.
(let ((n (1- (prefix-numeric-value argp)))
(i 0)
(e compilation-old-error-list))
;; See how many cdrs away the current error is from the start.
(while (not (eq e compilation-error-list))
(setq i (1+ i)
e (cdr e)))
(if (> (- n) i)
(error "Moved back past first error")
(nthcdr (+ i n) compilation-old-error-list))))
next-error (car next-errors))
(while
(progn