From c04f2ac06346dcdf6046d3c1612e843da17f3bd2 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 17 Nov 2010 09:54:15 -0500 Subject: [PATCH] * lisp/progmodes/grep.el (grep-regexp-alist): Tighten the regexp. Fixes: debbugs:7378 --- lisp/ChangeLog | 4 ++++ lisp/progmodes/grep.el | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 05b5c1cebd1..2b137af08d9 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2010-11-17 Stefan Monnier + + * progmodes/grep.el (grep-regexp-alist): Tighten the regexp (bug#7378). + 2010-11-16 Stefan Monnier * progmodes/octave-mod.el: Rely on elecric-*-modes. diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el index 3f5fa543813..06ab8c389d4 100644 --- a/lisp/progmodes/grep.el +++ b/lisp/progmodes/grep.el @@ -348,7 +348,11 @@ Notice that using \\[next-error] or \\[compile-goto-error] modifies ;; produces them ;; ("^\\(.+?\\)\\(:[ \t]*\\)\\([0-9]+\\)\\2\\(?:\\([0-9]+\\)\\(?:-\\([0-9]+\\)\\)?\\2\\)?" ;; 1 3 (4 . 5)) - ("^\\(\\(.+?\\):\\([0-9]+\\):\\).*?\ + ;; Note that we want to use as tight a regexp as we can to try and + ;; handle weird file names (with colons in them) as well as possible. + ;; E.g. we use [1-9][0-9]* rather than [0-9]+ so as to accept ":034:" in + ;; file names. + ("^\\(\\(.+?\\):\\([1-9][0-9]*\\):\\).*?\ \\(\033\\[01;31m\\(?:\033\\[K\\)?\\)\\(.*?\\)\\(\033\\[[0-9]*m\\)" 2 3 ;; Calculate column positions (beg . end) of first grep match on a line @@ -357,7 +361,7 @@ Notice that using \\[next-error] or \\[compile-goto-error] modifies (- (match-beginning 4) (match-end 1))) . (lambda () (- (match-end 5) (match-end 1) - (- (match-end 4) (match-beginning 4))))) + (- (match-end 4) (match-beginning 4))))) nil 1) ("^Binary file \\(.+\\) matches$" 1 nil nil 0 1)) "Regexp used to match grep hits. See `compilation-error-regexp-alist'.") -- 2.39.5