From 0cd16af4322df5df1fffe48931892f7d92a43f01 Mon Sep 17 00:00:00 2001 From: Sam Steingold Date: Mon, 12 Oct 2009 21:04:15 +0000 Subject: [PATCH] (compilation-mode-font-lock-keywords): Do not prepend "^ *" to non-anchored patterns, like the perl one (bug#3928). --- lisp/ChangeLog | 5 ++++- lisp/progmodes/compile.el | 9 ++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 72b4848f595..58975e14f44 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,7 +1,10 @@ 2009-10-12 Sam Steingold * progmodes/compile.el (compilation-next-error-function): Fix the - timestamps if the buffer has been visited before + timestamps if the buffer has been visited before. + + (compilation-mode-font-lock-keywords): Do not prepend "^ *" to + non-anchored patterns, like the perl one (bug#3928). 2009-10-12 Glenn Morris diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 7b2d21cf310..c44ddfdb242 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -989,11 +989,10 @@ FMTS is a list of format specs for transforming the file name. ;; another solution is to modify (some?) regexps in ;; `compilation-error-regexp-alist'. ;; note that omake usage is not limited to ocaml and C (for stubs). - (unless (string-match (concat "^" (regexp-quote "^ *")) pat) - (setq pat (concat "^ *" - (if (= ?^ (aref pat 0)) - (substring pat 1) - pat)))) + (when (and (= ?^ (aref pat 0)) ; anchored: starts with "^" + ;; but does not allow an arbitrary number of leading spaces + (not (and (= ? (aref pat 1)) (= ?* (aref pat 1))))) + (setq pat (concat "^ *" (substring pat 1)))) (if (consp file) (setq fmt (cdr file) file (car file))) (if (consp line) (setq end-line (cdr line) line (car line))) (if (consp col) (setq end-col (cdr col) col (car col))) -- 2.39.5