unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#4301: rgrep/lgrep defaults
@ 2009-08-31 19:59 ` Juri Linkov
  2009-09-10  1:07   ` Juri Linkov
  2009-12-07 17:45   ` bug#4301: marked as done (rgrep/lgrep defaults) Emacs bug Tracking System
  0 siblings, 2 replies; 3+ messages in thread
From: Juri Linkov @ 2009-08-31 19:59 UTC (permalink / raw)
  To: bug-gnu-emacs

Currently rgep/lgrep proposes to search in C files by default.
This default value assumes that majority of Emacs users prefer searching
only in C files.  This can't be true.  So the current default value is
useless.  I think a better default value is to search _all_ files, where
all includes hidden dot files as well.  rgrep already searches in dot
files, but lgrep doesn't.  To remove this inconsistency we could bind
"all" to "* .*" in `grep-files-aliases'.  Placing it first makes it the
default value which reads clear and understandable in the default prompt as:

  Search for "text" in files (default all):

instead of the current:

  Search for "text" in files (default ch):

"asm" could be moved to the bottom of the list of default values
in `grep-files-aliases', so this less frequent alias comes last
when retrieving via M-n.  Also this requires removing ("ch" "el")
from the pre-defined default of `grep-files-history' and moving
("ch" "el") higher in `grep-files-aliases'.

Another inconsistency is that rgrep provides the default command that
ignores vcs directories, but doesn't ignore vcs files like ".v",
backup files "~" "\\`#" "\\`.#" and other ignorable files from
`completion-ignored-extensions'.  This can be improved by adding
new customizable variable `grep-find-ignored-files' where the nil
option disables it easily.  The same nil option is also useful for
`grep-find-ignored-directories' to disable it at once than deleting
every value from the default list one by one.

For rgrep, `grep-find-ignored-files' means mapping its list to
something like

  \(-name .\#\* -o -name \*\~ -o -name \*.o -o ... \) -prune -o

For lgrep, `grep-find-ignored-files' means mapping its list to
something like

  grep --exclude=.\#\* --exclude=\*\~ --exclude=\*.o ...

Below is a patch that implements this:

Index: lisp/progmodes/grep.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/progmodes/grep.el,v
retrieving revision 1.106
diff -c -w -b -r1.106 grep.el
*** lisp/progmodes/grep.el	30 Aug 2009 23:46:09 -0000	1.106
--- lisp/progmodes/grep.el	31 Aug 2009 19:54:27 -0000
***************
*** 176,193 ****
    :group 'grep)
  
  (defcustom grep-files-aliases
!   '(("asm" .    "*.[sS]")
      ("c" .     "*.c")
      ("cc" .    "*.cc *.cxx *.cpp *.C *.CC *.c++")
      ("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*")
      ("m" .     "[Mm]akefile*")
      ("tex" .    "*.tex")
!     ("texi" .   "*.texi"))
    "*Alist of aliases for the FILES argument to `lgrep' and `rgrep'."
    :type 'alist
    :group 'grep)
--- 176,194 ----
    :group 'grep)
  
  (defcustom grep-files-aliases
!   '(("all" .   "* .*")
!     ("el" .    "*.el")
!     ("ch" .    "*.[ch]")
      ("c" .     "*.c")
      ("cc" .    "*.cc *.cxx *.cpp *.C *.CC *.c++")
      ("cchh" .  "*.cc *.[ch]xx *.[ch]pp *.[CHh] *.CC *.HH *.[ch]++")
      ("hh" .    "*.hxx *.hpp *.[Hh] *.HH *.h++")
      ("h" .     "*.h")
      ("l" .     "[Cc]hange[Ll]og*")
      ("m" .     "[Mm]akefile*")
      ("tex" .   "*.tex")
!     ("texi" .  "*.texi")
!     ("asm" .   "*.[sS]"))
    "*Alist of aliases for the FILES argument to `lgrep' and `rgrep'."
    :type 'alist
    :group 'grep)
***************
*** 197,203 ****
    "*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)
    :group 'grep)
  
  (defcustom grep-error-screen-columns nil
--- 198,217 ----
    "*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 '(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 names 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,427 ****
  
  ;; History of lgrep and rgrep regexp and files args.
  (defvar grep-regexp-history nil)
! (defvar grep-files-history '("ch" "el"))
  
  ;;;###autoload
  (defun grep-process-setup ()
--- 435,441 ----
  
  ;; History of lgrep and rgrep regexp and files args.
  (defvar grep-regexp-history nil)
! (defvar grep-files-history nil)
  
  ;;;###autoload
  (defun grep-process-setup ()
***************
*** 524,530 ****
  		(format "%s %s " grep-program grep-options)))
  	(unless grep-template
  	  (setq grep-template
! 		(format "%s <C> %s <R> <F>" grep-program grep-options)))
  	(unless grep-find-use-xargs
  	  (setq grep-find-use-xargs
  		(cond
--- 538,544 ----
  		(format "%s %s " grep-program grep-options)))
  	(unless grep-template
  	  (setq grep-template
! 		(format "%s <X> <C> %s <R> <F>" grep-program grep-options)))
  	(unless grep-find-use-xargs
  	  (setq grep-find-use-xargs
  		(cond
***************
*** 753,760 ****
  	 (fn (and bn
  		  (stringp bn)
  		  (file-name-nondirectory bn)))
! 	 (default
! 	   (or (and fn
  		    (let ((aliases grep-files-aliases)
  			  alias)
  		      (while aliases
--- 767,774 ----
  	 (fn (and bn
  		  (stringp bn)
  		  (file-name-nondirectory bn)))
! 	 (default-alias
! 	   (and fn
  		(let ((aliases grep-files-aliases)
  		      alias)
  		  (while aliases
***************
*** 763,772 ****
  			(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))))
  	       (car grep-files-history)
  	       (car (car grep-files-aliases))))
  	 (files (read-string
--- 777,790 ----
  		    (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 default-alias
! 	       default-extension
  	       (car grep-files-history)
  	       (car (car grep-files-aliases))))
  	 (files (read-string
***************
*** 774,780 ****
  			 "\" in files"
  			 (if default (concat " (default " default ")"))
  			 ": ")
! 		 nil 'grep-files-history default)))
      (and files
  	 (or (cdr (assoc files grep-files-aliases))
  	     files))))
--- 792,801 ----
  			 "\" in files"
  			 (if default (concat " (default " 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,828 ****
  	(setq command (grep-expand-template
  		       grep-template
  		       regexp
! 		       files))
  	(when command
  	  (if confirm
  	      (setq command
--- 843,862 ----
  	(setq command (grep-expand-template
  		       grep-template
  		       regexp
! 		       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
***************
*** 893,898 ****
--- 927,933 ----
  			      " "
  			      (shell-quote-argument ")"))
  		      dir
+ 		      (concat
  		       (and grep-find-ignored-directories
  			    (concat (shell-quote-argument "(")
  				    ;; we should use shell-quote-argument here
***************
*** 911,917 ****
                                       " -o -path ")
  				    " "
  				    (shell-quote-argument ")")
! 				    " -prune -o ")))))
  	(when command
  	  (if confirm
  	      (setq command
--- 946,969 ----
  				     " -o -path ")
  				    " "
  				    (shell-quote-argument ")")
! 				    " -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

-- 
Juri Linkov
http://www.jurta.org/emacs/






^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#4301: rgrep/lgrep defaults
  2009-08-31 19:59 ` bug#4301: rgrep/lgrep defaults Juri Linkov
@ 2009-09-10  1:07   ` Juri Linkov
  2009-12-07 17:45   ` bug#4301: marked as done (rgrep/lgrep defaults) Emacs bug Tracking System
  1 sibling, 0 replies; 3+ messages in thread
From: Juri Linkov @ 2009-09-10  1:07 UTC (permalink / raw)
  To: 4301

Currently reading a file name pattern in rgep/lgrep provides no completion.
I think it would be better to provide file completion for the case when
the user wants to limit the search to one particular file in the current
directory, or to build a file name pattern based on the file in the
current directory.

Index: lisp/progmodes/grep.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/progmodes/grep.el,v
retrieving revision 1.107
diff -c -r1.107 grep.el
*** lisp/progmodes/grep.el	10 Sep 2009 00:57:44 -0000	1.107
--- lisp/progmodes/grep.el	10 Sep 2009 01:06:46 -0000
***************
*** 788,799 ****
  	       default-extension
  	       (car grep-files-history)
  	       (car (car grep-files-aliases))))
! 	 (files (read-string
  		 (concat "Search for \"" regexp
  			 "\" in files"
  			 (if default (concat " (default " default ")"))
  			 ": ")
! 		 nil 'grep-files-history
  		 (delete-dups
  		  (delq nil (append (list default default-alias default-extension)
  				    (mapcar 'car grep-files-aliases)))))))
--- 788,800 ----
  	       default-extension
  	       (car grep-files-history)
  	       (car (car grep-files-aliases))))
! 	 (files (completing-read
  		 (concat "Search for \"" regexp
  			 "\" in files"
  			 (if default (concat " (default " default ")"))
  			 ": ")
! 		 'read-file-name-internal
! 		 nil nil nil 'grep-files-history
  		 (delete-dups
  		  (delq nil (append (list default default-alias default-extension)
  				    (mapcar 'car grep-files-aliases)))))))

-- 
Juri Linkov
http://www.jurta.org/emacs/





^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#4301: marked as done (rgrep/lgrep defaults)
  2009-08-31 19:59 ` bug#4301: rgrep/lgrep defaults Juri Linkov
  2009-09-10  1:07   ` Juri Linkov
@ 2009-12-07 17:45   ` Emacs bug Tracking System
  1 sibling, 0 replies; 3+ messages in thread
From: Emacs bug Tracking System @ 2009-12-07 17:45 UTC (permalink / raw)
  To: Juri Linkov

[-- Attachment #1: Type: text/plain, Size: 837 bytes --]

Your message dated Mon, 07 Dec 2009 19:36:30 +0200
with message-id <873a3m3cv5.fsf@mail.jurta.org>
and subject line Re: bug#4301: rgrep/lgrep defaults
has caused the Emacs bug report #4301,
regarding rgrep/lgrep defaults
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@emacsbugs.donarmstrong.com
immediately.)


-- 
4301: http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=4301
Emacs Bug Tracking System
Contact owner@emacsbugs.donarmstrong.com with problems

[-- Attachment #2: Type: message/rfc822, Size: 11502 bytes --]

From: Juri Linkov <juri@jurta.org>
To: bug-gnu-emacs@gnu.org
Subject: rgrep/lgrep defaults
Date: Mon, 31 Aug 2009 22:59:02 +0300
Message-ID: <87ljkzsqk9.fsf@mail.jurta.org>

Currently rgep/lgrep proposes to search in C files by default.
This default value assumes that majority of Emacs users prefer searching
only in C files.  This can't be true.  So the current default value is
useless.  I think a better default value is to search _all_ files, where
all includes hidden dot files as well.  rgrep already searches in dot
files, but lgrep doesn't.  To remove this inconsistency we could bind
"all" to "* .*" in `grep-files-aliases'.  Placing it first makes it the
default value which reads clear and understandable in the default prompt as:

  Search for "text" in files (default all):

instead of the current:

  Search for "text" in files (default ch):

"asm" could be moved to the bottom of the list of default values
in `grep-files-aliases', so this less frequent alias comes last
when retrieving via M-n.  Also this requires removing ("ch" "el")
from the pre-defined default of `grep-files-history' and moving
("ch" "el") higher in `grep-files-aliases'.

Another inconsistency is that rgrep provides the default command that
ignores vcs directories, but doesn't ignore vcs files like ".v",
backup files "~" "\\`#" "\\`.#" and other ignorable files from
`completion-ignored-extensions'.  This can be improved by adding
new customizable variable `grep-find-ignored-files' where the nil
option disables it easily.  The same nil option is also useful for
`grep-find-ignored-directories' to disable it at once than deleting
every value from the default list one by one.

For rgrep, `grep-find-ignored-files' means mapping its list to
something like

  \(-name .\#\* -o -name \*\~ -o -name \*.o -o ... \) -prune -o

For lgrep, `grep-find-ignored-files' means mapping its list to
something like

  grep --exclude=.\#\* --exclude=\*\~ --exclude=\*.o ...

Below is a patch that implements this:

Index: lisp/progmodes/grep.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/progmodes/grep.el,v
retrieving revision 1.106
diff -c -w -b -r1.106 grep.el
*** lisp/progmodes/grep.el	30 Aug 2009 23:46:09 -0000	1.106
--- lisp/progmodes/grep.el	31 Aug 2009 19:54:27 -0000
***************
*** 176,193 ****
    :group 'grep)
  
  (defcustom grep-files-aliases
!   '(("asm" .    "*.[sS]")
      ("c" .     "*.c")
      ("cc" .    "*.cc *.cxx *.cpp *.C *.CC *.c++")
      ("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*")
      ("m" .     "[Mm]akefile*")
      ("tex" .    "*.tex")
!     ("texi" .   "*.texi"))
    "*Alist of aliases for the FILES argument to `lgrep' and `rgrep'."
    :type 'alist
    :group 'grep)
--- 176,194 ----
    :group 'grep)
  
  (defcustom grep-files-aliases
!   '(("all" .   "* .*")
!     ("el" .    "*.el")
!     ("ch" .    "*.[ch]")
      ("c" .     "*.c")
      ("cc" .    "*.cc *.cxx *.cpp *.C *.CC *.c++")
      ("cchh" .  "*.cc *.[ch]xx *.[ch]pp *.[CHh] *.CC *.HH *.[ch]++")
      ("hh" .    "*.hxx *.hpp *.[Hh] *.HH *.h++")
      ("h" .     "*.h")
      ("l" .     "[Cc]hange[Ll]og*")
      ("m" .     "[Mm]akefile*")
      ("tex" .   "*.tex")
!     ("texi" .  "*.texi")
!     ("asm" .   "*.[sS]"))
    "*Alist of aliases for the FILES argument to `lgrep' and `rgrep'."
    :type 'alist
    :group 'grep)
***************
*** 197,203 ****
    "*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)
    :group 'grep)
  
  (defcustom grep-error-screen-columns nil
--- 198,217 ----
    "*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 '(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 names 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,427 ****
  
  ;; History of lgrep and rgrep regexp and files args.
  (defvar grep-regexp-history nil)
! (defvar grep-files-history '("ch" "el"))
  
  ;;;###autoload
  (defun grep-process-setup ()
--- 435,441 ----
  
  ;; History of lgrep and rgrep regexp and files args.
  (defvar grep-regexp-history nil)
! (defvar grep-files-history nil)
  
  ;;;###autoload
  (defun grep-process-setup ()
***************
*** 524,530 ****
  		(format "%s %s " grep-program grep-options)))
  	(unless grep-template
  	  (setq grep-template
! 		(format "%s <C> %s <R> <F>" grep-program grep-options)))
  	(unless grep-find-use-xargs
  	  (setq grep-find-use-xargs
  		(cond
--- 538,544 ----
  		(format "%s %s " grep-program grep-options)))
  	(unless grep-template
  	  (setq grep-template
! 		(format "%s <X> <C> %s <R> <F>" grep-program grep-options)))
  	(unless grep-find-use-xargs
  	  (setq grep-find-use-xargs
  		(cond
***************
*** 753,760 ****
  	 (fn (and bn
  		  (stringp bn)
  		  (file-name-nondirectory bn)))
! 	 (default
! 	   (or (and fn
  		    (let ((aliases grep-files-aliases)
  			  alias)
  		      (while aliases
--- 767,774 ----
  	 (fn (and bn
  		  (stringp bn)
  		  (file-name-nondirectory bn)))
! 	 (default-alias
! 	   (and fn
  		(let ((aliases grep-files-aliases)
  		      alias)
  		  (while aliases
***************
*** 763,772 ****
  			(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))))
  	       (car grep-files-history)
  	       (car (car grep-files-aliases))))
  	 (files (read-string
--- 777,790 ----
  		    (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 default-alias
! 	       default-extension
  	       (car grep-files-history)
  	       (car (car grep-files-aliases))))
  	 (files (read-string
***************
*** 774,780 ****
  			 "\" in files"
  			 (if default (concat " (default " default ")"))
  			 ": ")
! 		 nil 'grep-files-history default)))
      (and files
  	 (or (cdr (assoc files grep-files-aliases))
  	     files))))
--- 792,801 ----
  			 "\" in files"
  			 (if default (concat " (default " 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,828 ****
  	(setq command (grep-expand-template
  		       grep-template
  		       regexp
! 		       files))
  	(when command
  	  (if confirm
  	      (setq command
--- 843,862 ----
  	(setq command (grep-expand-template
  		       grep-template
  		       regexp
! 		       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
***************
*** 893,898 ****
--- 927,933 ----
  			      " "
  			      (shell-quote-argument ")"))
  		      dir
+ 		      (concat
  		       (and grep-find-ignored-directories
  			    (concat (shell-quote-argument "(")
  				    ;; we should use shell-quote-argument here
***************
*** 911,917 ****
                                       " -o -path ")
  				    " "
  				    (shell-quote-argument ")")
! 				    " -prune -o ")))))
  	(when command
  	  (if confirm
  	      (setq command
--- 946,969 ----
  				     " -o -path ")
  				    " "
  				    (shell-quote-argument ")")
! 				    " -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

-- 
Juri Linkov
http://www.jurta.org/emacs/



[-- Attachment #3: Type: message/rfc822, Size: 1819 bytes --]

From: Juri Linkov <juri@jurta.org>
To: 4301-done@emacsbugs.donarmstrong.com
Subject: Re: bug#4301: rgrep/lgrep defaults
Date: Mon, 07 Dec 2009 19:36:30 +0200
Message-ID: <873a3m3cv5.fsf@mail.jurta.org>

> Currently reading a file name pattern in rgep/lgrep provides no completion.
> I think it would be better to provide file completion for the case when
> the user wants to limit the search to one particular file in the current
> directory, or to build a file name pattern based on the file in the
> current directory.

Done.

-- 
Juri Linkov
http://www.jurta.org/emacs/

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-12-07 17:45 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <873a3m3cv5.fsf@mail.jurta.org>
2009-08-31 19:59 ` bug#4301: rgrep/lgrep defaults Juri Linkov
2009-09-10  1:07   ` Juri Linkov
2009-12-07 17:45   ` bug#4301: marked as done (rgrep/lgrep defaults) Emacs bug Tracking System

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).