changeset 39835:81c88c75006b

(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.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 12 Oct 2001 17:43:05 +0000
parents 0f64721b0bb8
children c2db8c1499cb
files lisp/progmodes/compile.el
diffstat 1 files changed, 12 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/compile.el	Fri Oct 12 17:29:52 2001 +0000
+++ b/lisp/progmodes/compile.el	Fri Oct 12 17:43:05 2001 +0000
@@ -1415,7 +1415,13 @@
 		;; 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 @@
 	      ;; 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 @@
       ;; 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