1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-09 15:50:21 +00:00

Fix match highlighting in compilation buffers.

* progmodes/compile.el (compilation-internal-error-properties):
Calculate start position correctly when end-col is set but
end-line is not.

Fixes: debbugs:11382
This commit is contained in:
Troels Nielsen 2012-05-06 12:52:58 +08:00 committed by Chong Yidong
parent ebfe2597a8
commit 52b61776c5
2 changed files with 15 additions and 9 deletions

View 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-06 Wolfgang Jenkner <wjenkner@inode.at>
* man.el (Man-unindent): Use text-property-default-nonsticky to

View 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))