Function: grep-read-files
grep-read-files is a byte-compiled function defined in grep.el.gz.
Signature
(grep-read-files REGEXP)
Documentation
Read a file-name pattern arg for interactive grep.
The pattern can include shell wildcards. As SPC can triggers
completion when entering a pattern, including it requires
quoting, e.g. C-q (quoted-insert)<space>.
REGEXP is used as a string in the prompt.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/grep.el.gz
(defun grep-read-files (regexp)
"Read a file-name pattern arg for interactive grep.
The pattern can include shell wildcards. As SPC can triggers
completion when entering a pattern, including it requires
quoting, e.g. `\\[quoted-insert]<space>'.
REGEXP is used as a string in the prompt."
(let* ((bn (funcall grep-read-files-function))
(fn (and bn
(stringp bn)
(file-name-nondirectory bn)))
(default-alias
(and fn
(let ((aliases (remove (assoc "all" grep-files-aliases)
grep-files-aliases))
alias)
(while aliases
(setq alias (car aliases)
aliases (cdr aliases))
(if (string-match (mapconcat
#'wildcard-to-regexp
(split-string (cdr alias) nil t)
"\\|")
fn)
(setq aliases nil)
(setq alias nil)))
(cdr alias))))
(default-extension
(and fn
(let ((ext (file-name-extension fn)))
(and ext (concat "*." ext)))))
(default
(or default-alias
default-extension
(car grep-files-history)
(car (car grep-files-aliases))))
(defaults
(delete-dups
(delq nil
(append (list default default-alias default-extension)
(mapcar #'car grep-files-aliases)))))
(files (completing-read
(format-prompt "Search for \"%s\" in files matching wildcard"
default regexp)
(completion-table-merge defaults #'completion-file-name-table)
nil nil nil 'grep-files-history defaults)))
(and files
(or (cdr (assoc files grep-files-aliases))
files))))