From: Stefan Monnier Date: Fri, 12 Oct 2001 17:43:05 +0000 (+0000) Subject: (compile-mouse-goto-error, compile-goto-error): X-Git-Tag: ttn-vms-21-2-B4~19522 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8f36a284bc2552ba32bccfa9597194b253eece96;p=emacs.git (compile-mouse-goto-error, compile-goto-error): Consider the text between two errors as belonging to the first error. (compilation-goto-locus): Use pop-to-buffer rather than switch-to-buffer-other-frame. --- diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index b972adea767..da4d398ec22 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -1415,7 +1415,13 @@ at the end of the line." ;; failed to find the relevant file. See ;; compilation-next-error-locus. (or (null (marker-buffer (caar compilation-error-list))) - (> (point) (caar compilation-error-list)))) + (and (> (point) (caar compilation-error-list)) + (cdr compilation-error-list) + ;; Don't skip too far: the text between two errors + ;; belongs to the first. Especially since this + ;; in-between text might be other errors on the same + ;; line (see compilation-skip-to-next-location). + (>= (point) (caadr compilation-error-list))))) (setq compilation-error-list (cdr compilation-error-list))) (or compilation-error-list (error "No error to go to"))) @@ -1446,7 +1452,9 @@ other kinds of prefix arguments are ignored." ;; failed to find the relevant file. See ;; compilation-next-error-locus. (or (null (marker-buffer (caar compilation-error-list))) - (> (point) (caar compilation-error-list)))) + (and (> (point) (caar compilation-error-list)) + (cdr compilation-error-list) + (>= (point) (caadr compilation-error-list))))) (setq compilation-error-list (cdr compilation-error-list))) (push-mark) @@ -1701,9 +1709,8 @@ Selects a window with point at SOURCE, with another window displaying ERROR." ;; display the source in another window. (let ((pop-up-windows t)) (pop-to-buffer (marker-buffer (cdr next-error)))) - (if (and (window-dedicated-p (selected-window)) - (eq (selected-window) (frame-root-window))) - (switch-to-buffer-other-frame (marker-buffer (cdr next-error))) + (if (window-dedicated-p (selected-window)) + (pop-to-buffer (marker-buffer (cdr next-error))) (switch-to-buffer (marker-buffer (cdr next-error))))) (goto-char (cdr next-error)) ;; If narrowing got in the way of