mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
(grep-template): Add "<X>" to docstring.
(grep-files-aliases): Add "all". Move "el" and "ch" to the top of
the list. Move "asm" to the bottom.
(grep-find-ignored-directories): Add `choice' with nil value
to empty the list easily.
(grep-find-ignored-files): New option.
(grep-files-history): Set to nil by default instead of '("ch" "el").
(grep-compute-defaults): Add "<X>" to `grep-template'.
(grep-read-files): Bind new local variables `default-alias' and
`default-extension'. Use a list of default values for the file prompt.
(lgrep): Add `--exclude=' command line options composed from
`grep-find-ignored-files'.
(rgrep): Add `-name' command line options composed from
`grep-find-ignored-files'. (Bug#4301)
This commit is contained in:
parent
50c737e439
commit
7ae624301e
2 changed files with 115 additions and 39 deletions
|
|
@ -1,3 +1,26 @@
|
|||
2009-09-10 Juri Linkov <juri@jurta.org>
|
||||
|
||||
* isearch.el (isearch-text-char-description): Propertize escape
|
||||
character sequences with the `escape-glyph' face. (Bug#4344)
|
||||
|
||||
* simple.el (shell-command): Set asynchronous process filter to
|
||||
`comint-output-filter'. (Bug#4343)
|
||||
|
||||
* progmodes/grep.el (grep-template): Add "<X>" to docstring.
|
||||
(grep-files-aliases): Add "all". Move "el" and "ch" to the top of
|
||||
the list. Move "asm" to the bottom.
|
||||
(grep-find-ignored-directories): Add `choice' with nil value
|
||||
to empty the list easily.
|
||||
(grep-find-ignored-files): New option.
|
||||
(grep-files-history): Set to nil by default instead of '("ch" "el").
|
||||
(grep-compute-defaults): Add "<X>" to `grep-template'.
|
||||
(grep-read-files): Bind new local variables `default-alias' and
|
||||
`default-extension'. Use a list of default values for the file prompt.
|
||||
(lgrep): Add `--exclude=' command line options composed from
|
||||
`grep-find-ignored-files'.
|
||||
(rgrep): Add `-name' command line options composed from
|
||||
`grep-find-ignored-files'. (Bug#4301)
|
||||
|
||||
2009-09-09 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* diff-mode.el (diff-hunk-kill): Fix the search of the next hunk
|
||||
|
|
@ -384,7 +407,7 @@
|
|||
2009-08-30 Kevin Rodgers <kevin.d.rodgers@gmail.com>
|
||||
|
||||
* progmodes/grep.el (grep-read-files): Strip trailing <N> from
|
||||
buffer names not visiting a file (e.g. cloned buffers).
|
||||
buffer names not visiting a file (e.g. cloned buffers). (Bug#4210)
|
||||
|
||||
2009-08-30 Nick Roberts <nickrob@snap.net.nz>
|
||||
|
||||
|
|
|
|||
|
|
@ -120,6 +120,7 @@ Customize or call the function `grep-apply-setting'."
|
|||
The following place holders should be present in the string:
|
||||
<C> - place to put -i if case insensitive grep.
|
||||
<F> - file names and wildcards to search.
|
||||
<X> - file names and wildcards to exclude.
|
||||
<R> - the regular expression searched for.
|
||||
<N> - place to insert null-device.
|
||||
|
||||
|
|
@ -176,18 +177,19 @@ Customize or call the function `grep-apply-setting'."
|
|||
:group 'grep)
|
||||
|
||||
(defcustom grep-files-aliases
|
||||
'(("asm" . "*.[sS]")
|
||||
'(("all" . "* .*")
|
||||
("el" . "*.el")
|
||||
("ch" . "*.[ch]")
|
||||
("c" . "*.c")
|
||||
("cc" . "*.cc *.cxx *.cpp *.C *.CC *.c++")
|
||||
("cchh" . "*.cc *.[ch]xx *.[ch]pp *.[CHh] *.CC *.HH *.[ch]++")
|
||||
("cchh" . "*.cc *.[ch]xx *.[ch]pp *.[CHh] *.CC *.HH *.[ch]++")
|
||||
("hh" . "*.hxx *.hpp *.[Hh] *.HH *.h++")
|
||||
("ch" . "*.[ch]")
|
||||
("el" . "*.el")
|
||||
("h" . "*.h")
|
||||
("l" . "[Cc]hange[Ll]og*")
|
||||
("l" . "[Cc]hange[Ll]og*")
|
||||
("m" . "[Mm]akefile*")
|
||||
("tex" . "*.tex")
|
||||
("texi" . "*.texi"))
|
||||
("tex" . "*.tex")
|
||||
("texi" . "*.texi")
|
||||
("asm" . "*.[sS]"))
|
||||
"*Alist of aliases for the FILES argument to `lgrep' and `rgrep'."
|
||||
:type 'alist
|
||||
:group 'grep)
|
||||
|
|
@ -197,7 +199,20 @@ Customize or call the function `grep-apply-setting'."
|
|||
"*List of names of sub-directories which `rgrep' shall not recurse into.
|
||||
If an element is a cons cell, the car is called on the search directory
|
||||
to determine whether cdr should not be recursed into."
|
||||
:type '(repeat string)
|
||||
:type '(choice (repeat :tag "Ignored directories" string)
|
||||
(const :tag "No ignored directories" nil))
|
||||
:group 'grep)
|
||||
|
||||
(defcustom grep-find-ignored-files
|
||||
(cons ".#*" (delq nil (mapcar (lambda (s)
|
||||
(unless (string-match-p "/\\'" s)
|
||||
(concat "*" s)))
|
||||
completion-ignored-extensions)))
|
||||
"*List of file names which `rgrep' and `lgrep' shall exclude.
|
||||
If an element is a cons cell, the car is called on the search directory
|
||||
to determine whether cdr should not be excluded."
|
||||
:type '(choice (repeat :tag "Ignored file" string)
|
||||
(const :tag "No ignored files" nil))
|
||||
:group 'grep)
|
||||
|
||||
(defcustom grep-error-screen-columns nil
|
||||
|
|
@ -421,7 +436,7 @@ This variable's value takes effect when `grep-compute-defaults' is called.")
|
|||
|
||||
;; History of lgrep and rgrep regexp and files args.
|
||||
(defvar grep-regexp-history nil)
|
||||
(defvar grep-files-history '("ch" "el"))
|
||||
(defvar grep-files-history nil)
|
||||
|
||||
;;;###autoload
|
||||
(defun grep-process-setup ()
|
||||
|
|
@ -524,7 +539,7 @@ Set up `compilation-exit-message-function' and run `grep-setup-hook'."
|
|||
(format "%s %s " grep-program grep-options)))
|
||||
(unless grep-template
|
||||
(setq grep-template
|
||||
(format "%s <C> %s <R> <F>" grep-program grep-options)))
|
||||
(format "%s <X> <C> %s <R> <F>" grep-program grep-options)))
|
||||
(unless grep-find-use-xargs
|
||||
(setq grep-find-use-xargs
|
||||
(cond
|
||||
|
|
@ -753,20 +768,24 @@ substitution string. Note dynamic scoping of variables.")
|
|||
(fn (and bn
|
||||
(stringp bn)
|
||||
(file-name-nondirectory bn)))
|
||||
(default-alias
|
||||
(and fn
|
||||
(let ((aliases grep-files-aliases)
|
||||
alias)
|
||||
(while aliases
|
||||
(setq alias (car aliases)
|
||||
aliases (cdr aliases))
|
||||
(if (string-match (wildcard-to-regexp (cdr alias)) 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 (and fn
|
||||
(let ((aliases grep-files-aliases)
|
||||
alias)
|
||||
(while aliases
|
||||
(setq alias (car aliases)
|
||||
aliases (cdr aliases))
|
||||
(if (string-match (wildcard-to-regexp (cdr alias)) fn)
|
||||
(setq aliases nil)
|
||||
(setq alias nil)))
|
||||
(cdr alias)))
|
||||
(and fn
|
||||
(let ((ext (file-name-extension fn)))
|
||||
(and ext (concat "*." ext))))
|
||||
(or default-alias
|
||||
default-extension
|
||||
(car grep-files-history)
|
||||
(car (car grep-files-aliases))))
|
||||
(files (read-string
|
||||
|
|
@ -774,7 +793,10 @@ substitution string. Note dynamic scoping of variables.")
|
|||
"\" in files"
|
||||
(if default (concat " (default " default ")"))
|
||||
": ")
|
||||
nil 'grep-files-history default)))
|
||||
nil 'grep-files-history
|
||||
(delete-dups
|
||||
(delq nil (append (list default default-alias default-extension)
|
||||
(mapcar 'car grep-files-aliases)))))))
|
||||
(and files
|
||||
(or (cdr (assoc files grep-files-aliases))
|
||||
files))))
|
||||
|
|
@ -822,7 +844,20 @@ This command shares argument histories with \\[rgrep] and \\[grep]."
|
|||
(setq command (grep-expand-template
|
||||
grep-template
|
||||
regexp
|
||||
files))
|
||||
files
|
||||
nil
|
||||
(and grep-find-ignored-files
|
||||
(concat " --exclude="
|
||||
(mapconcat
|
||||
#'(lambda (ignore)
|
||||
(cond ((stringp ignore)
|
||||
(shell-quote-argument ignore))
|
||||
((consp ignore)
|
||||
(and (funcall (car ignore) dir)
|
||||
(shell-quote-argument
|
||||
(cdr ignore))))))
|
||||
grep-find-ignored-files
|
||||
" --exclude=")))))
|
||||
(when command
|
||||
(if confirm
|
||||
(setq command
|
||||
|
|
@ -892,26 +927,44 @@ This command shares argument histories with \\[lgrep] and \\[grep-find]."
|
|||
(concat " -o " find-name-arg " "))
|
||||
" "
|
||||
(shell-quote-argument ")"))
|
||||
dir
|
||||
dir
|
||||
(concat
|
||||
(and grep-find-ignored-directories
|
||||
(concat (shell-quote-argument "(")
|
||||
;; we should use shell-quote-argument here
|
||||
" -path "
|
||||
(mapconcat
|
||||
#'(lambda (ignore)
|
||||
(cond ((stringp ignore)
|
||||
(shell-quote-argument
|
||||
(concat "*/" ignore)))
|
||||
((consp ignore)
|
||||
(and (funcall (car ignore) dir)
|
||||
(shell-quote-argument
|
||||
(concat "*/"
|
||||
(cdr ignore)))))))
|
||||
grep-find-ignored-directories
|
||||
" -o -path ")
|
||||
#'(lambda (ignore)
|
||||
(cond ((stringp ignore)
|
||||
(shell-quote-argument
|
||||
(concat "*/" ignore)))
|
||||
((consp ignore)
|
||||
(and (funcall (car ignore) dir)
|
||||
(shell-quote-argument
|
||||
(concat "*/"
|
||||
(cdr ignore)))))))
|
||||
grep-find-ignored-directories
|
||||
" -o -path ")
|
||||
" "
|
||||
(shell-quote-argument ")")
|
||||
" -prune -o ")))))
|
||||
" -prune -o "))
|
||||
(and grep-find-ignored-files
|
||||
(concat (shell-quote-argument "(")
|
||||
;; we should use shell-quote-argument here
|
||||
" -name "
|
||||
(mapconcat
|
||||
#'(lambda (ignore)
|
||||
(cond ((stringp ignore)
|
||||
(shell-quote-argument ignore))
|
||||
((consp ignore)
|
||||
(and (funcall (car ignore) dir)
|
||||
(shell-quote-argument
|
||||
(cdr ignore))))))
|
||||
grep-find-ignored-files
|
||||
" -o -name ")
|
||||
" "
|
||||
(shell-quote-argument ")")
|
||||
" -prune -o "))))))
|
||||
(when command
|
||||
(if confirm
|
||||
(setq command
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue