]> git.eshelyaron.com Git - emacs.git/commitdiff
Backport fix for Bug#11382 from trunk
authorChong Yidong <cyd@gnu.org>
Sun, 13 May 2012 09:16:46 +0000 (17:16 +0800)
committerChong Yidong <cyd@gnu.org>
Sun, 13 May 2012 09:16:46 +0000 (17:16 +0800)
lisp/ChangeLog
lisp/progmodes/compile.el

index e6183d92705ea3ac97f1b790fdf99a11330c8d07..93127c437839b182424befcebe6180369ce42095 100644 (file)
@@ -1,3 +1,9 @@
+2012-05-06  Troels Nielsen  <bn.troels@gmail.com>  (tiny change)
+
+       * progmodes/compile.el (compilation-internal-error-properties):
+       Calculate start position correctly when end-col is set but
+       end-line is not (Bug#11382).
+
 2012-05-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * net/rlogin.el (rlogin-mode-map): Fix last change.
index c1d8f9db23fa512dbd036a628905f49e60f02f05..cdaff4134445797ccc00384a9fe784e9e8122f8e 100644 (file)
@@ -1068,14 +1068,14 @@ FMTS is a list of format specs for transforming the file name.
         end-marker loc end-loc)
     (if (not (and marker (marker-buffer marker)))
        (setq marker nil)               ; no valid marker for this file
-      (setq loc (or line 1))           ; normalize no linenumber to line 1
+      (unless line (setq line 1))       ; normalize no linenumber to line 1
       (catch 'marker                   ; find nearest loc, at least one exists
        (dolist (x (cddr (compilation--file-struct->loc-tree
                           file-struct)))       ; Loop over remaining lines.
-         (if (> (car x) loc)           ; Still bigger.
+         (if (> (car x) line)          ; Still bigger.
              (setq marker-line x)
-           (if (> (- (or (car marker-line) 1) loc)
-                  (- loc (car x)))     ; Current line is nearer.
+           (if (> (- (or (car marker-line) 1) line)
+                  (- line (car x)))    ; Current line is nearer.
                (setq marker-line x))
            (throw 'marker t))))
       (setq marker (compilation--loc->marker (cadr marker-line))
@@ -1093,15 +1093,15 @@ FMTS is a list of format specs for transforming the file name.
          (save-restriction
            (widen)
            (goto-char (marker-position marker))
-           (when (or end-col end-line)
+           ;; Set end-marker if appropriate and go to line.
+           (if (not (or end-col end-line))
+               (beginning-of-line (- line marker-line -1))
              (beginning-of-line (- (or end-line line) marker-line -1))
              (if (or (null end-col) (< end-col 0))
                  (end-of-line)
                (compilation-move-to-column end-col screen-columns))
-             (setq end-marker (point-marker)))
-           (beginning-of-line (if end-line
-                                  (- line end-line -1)
-                                (- loc marker-line -1)))
+             (setq end-marker (point-marker))
+             (when end-line (beginning-of-line (- line end-line -1))))
            (if col
                (compilation-move-to-column col screen-columns)
              (forward-to-indentation 0))