From ad6fc8f44ebb3a48ecb3800273bbe82219391222 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Sun, 31 Jan 2010 23:47:47 +0200 Subject: [PATCH] * progmodes/grep.el (zrgrep): Call `grep-compute-defaults' at the beginning of interactive spec like all other grep commands do. Put "all" in front of "gz". (Bug#5260) --- lisp/ChangeLog | 6 ++++++ lisp/progmodes/grep.el | 46 +++++++++++++++++++++++++----------------- 2 files changed, 33 insertions(+), 19 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 4d38251f37e..96f210a2ba8 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2010-01-31 Juri Linkov + + * progmodes/grep.el (zrgrep): Call `grep-compute-defaults' at the + beginning of interactive spec like all other grep commands do. + Put "all" in front of "gz". (Bug#5260) + 2010-01-29 Dan Nicolaescu * vc-bzr.el (vc-bzr-after-dir-status): Match another renaming indicator. diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el index 20d53502d3a..b13a75e3844 100644 --- a/lisp/progmodes/grep.el +++ b/lisp/progmodes/grep.el @@ -996,26 +996,34 @@ This command shares argument histories with \\[lgrep] and \\[grep-find]." Like `rgrep' but uses `zgrep' for `grep-program', sets the default file name to `*.gz', and sets `grep-highlight-matches' to `always'." (interactive - (let ((grep-program "zgrep") - (grep-find-template nil) ; output of `grep-compute-defaults' - (grep-find-command nil) - (grep-host-defaults-alist nil) - (grep-files-aliases '(("*.gz" . "*.gz") ; for `grep-read-files' - ("all" . "* .*")))) - ;; Recompute defaults using let-bound values above. + (progn + ;; Compute standard default values. (grep-compute-defaults) - (cond - ((and grep-find-command (equal current-prefix-arg '(16))) - (list (read-from-minibuffer "Run: " grep-find-command - nil nil 'grep-find-history))) - ((not grep-find-template) - (error "grep.el: No `grep-find-template' available")) - (t (let* ((regexp (grep-read-regexp)) - (files (grep-read-files regexp)) - (dir (read-directory-name "Base directory: " - nil default-directory t)) - (confirm (equal current-prefix-arg '(4)))) - (list regexp files dir confirm grep-find-template)))))) + ;; Compute the default zrgrep command by running `grep-compute-defaults' + ;; for grep program "zgrep", but not changing global values. + (let ((grep-program "zgrep") + ;; Don't change global values for variables computed + ;; by `grep-compute-defaults'. + (grep-find-template nil) + (grep-find-command nil) + (grep-host-defaults-alist nil) + ;; Use for `grep-read-files' + (grep-files-aliases '(("all" . "* .*") + ("gz" . "*.gz")))) + ;; Recompute defaults using let-bound values above. + (grep-compute-defaults) + (cond + ((and grep-find-command (equal current-prefix-arg '(16))) + (list (read-from-minibuffer "Run: " grep-find-command + nil nil 'grep-find-history))) + ((not grep-find-template) + (error "grep.el: No `grep-find-template' available")) + (t (let* ((regexp (grep-read-regexp)) + (files (grep-read-files regexp)) + (dir (read-directory-name "Base directory: " + nil default-directory t)) + (confirm (equal current-prefix-arg '(4)))) + (list regexp files dir confirm grep-find-template))))))) ;; Set `grep-highlight-matches' to `always' ;; since `zgrep' puts filters in the grep output. (let ((grep-highlight-matches 'always)) -- 2.39.2