Merge from emacs-23
[bpt/emacs.git] / lisp / progmodes / grep.el
index dac14d0..8e36d3f 100644 (file)
@@ -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'.")
@@ -781,12 +785,17 @@ substitution string.  Note dynamic scoping of variables.")
                  (file-name-nondirectory bn)))
         (default-alias
           (and fn
-               (let ((aliases grep-files-aliases)
+               (let ((aliases (remove (assoc "all" grep-files-aliases)
+                                      grep-files-aliases))
                      alias)
                  (while aliases
                    (setq alias (car aliases)
                          aliases (cdr aliases))
-                   (if (string-match (wildcard-to-regexp (cdr alias)) fn)
+                   (if (string-match (mapconcat
+                                      'wildcard-to-regexp
+                                      (split-string (cdr alias) nil t)
+                                      "\\|")
+                                     fn)
                        (setq aliases nil)
                      (setq alias nil)))
                  (cdr alias))))