changeset 111579:4433803ef920

* lisp/progmodes/grep.el (grep-regexp-alist): Tighten the regexp.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 17 Nov 2010 09:54:15 -0500
parents 312237f41f80
children bd93bfc2fc83
files lisp/ChangeLog lisp/progmodes/grep.el
diffstat 2 files changed, 10 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Nov 17 08:28:15 2010 +0000
+++ b/lisp/ChangeLog	Wed Nov 17 09:54:15 2010 -0500
@@ -1,3 +1,7 @@
+2010-11-17  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* progmodes/grep.el (grep-regexp-alist): Tighten the regexp (bug#7378).
+
 2010-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* progmodes/octave-mod.el: Rely on elecric-*-modes.
--- a/lisp/progmodes/grep.el	Wed Nov 17 08:28:15 2010 +0000
+++ b/lisp/progmodes/grep.el	Wed Nov 17 09:54:15 2010 -0500
@@ -348,7 +348,11 @@
     ;; 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 @@
         (- (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'.")