]> code.delx.au - gnu-emacs/commitdiff
(grep-read-files): Use buffer-name if no buffer-file-name.
authorKim F. Storm <storm@cua.dk>
Fri, 28 Apr 2006 23:39:02 +0000 (23:39 +0000)
committerKim F. Storm <storm@cua.dk>
Fri, 28 Apr 2006 23:39:02 +0000 (23:39 +0000)
Default to *.ext if no alias matches.
No default if no extension.

lisp/progmodes/grep.el

index e100910e8cf954ca7ae4f9720506c25e415c1eaf..7d8cc9d5c6406f3c1203deb8ef5e24e2643099e6 100644 (file)
@@ -599,10 +599,13 @@ substitution string.  Note dynamic scoping of variables.")
 
 (defun grep-read-files (regexp)
   "Read files arg for interactive grep."
-  (let* ((default
-          (or (and (stringp (buffer-file-name))
-                   (let ((fn (file-name-nondirectory (buffer-file-name)))
-                         (aliases grep-files-aliases)
+  (let* ((bn (or (buffer-file-name) (buffer-name)))
+        (fn (and bn
+                 (stringp bn)
+                 (file-name-nondirectory bn)))
+        (default
+          (or (and fn
+                   (let ((aliases grep-files-aliases)
                          alias)
                      (while aliases
                        (setq alias (car aliases)
@@ -611,10 +614,14 @@ substitution string.  Note dynamic scoping of variables.")
                            (setq aliases nil)
                          (setq alias nil)))
                      (cdr alias)))
-              (car grep-files-history)))
+              (and fn
+                   (let ((ext (file-name-extension fn)))
+                     (and ext (concat "*." ext))))))
         (files (read-string
                 (concat "Search for \"" regexp
-                        "\" in files (default " default "): ")
+                        "\" in files"
+                        (if default (concat " (default " default ")"))
+                        ": ")
                 nil 'grep-files-history default)))
     (and files
         (or (cdr (assoc files grep-files-aliases))