Subject: bug#9414: closed (Re: bug#9414: Fixed patch.)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 05 Sep 2011 10:02:02 +0000

Your bug report

#9414: Use of 'grep-find-ignored-directories' exclude files from search.

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
9414: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9414
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#9414: Fixed patch.
From: Juri Linkov <[email-masked]>
To: Oleksandr Gavenko <[email-masked]>
Cc: [email-masked]
Date: Mon, 05 Sep 2011 12:55:32 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> Previous patch is wrong (I miss 'find' options priority).
>
> This one right (more priestly tested and work fine).

Thank you.  This patch is now committed.

Subject: Use of 'grep-find-ignored-directories' exclude files from search.
From: Oleksandr Gavenko <[email-masked]>
To: [email-masked]
Date: Thu, 01 Sep 2011 00:44:11 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

GNU Emacs 23.3.1 (i386-mingw-nt6.1.7601) of 2011-03-10 on 3249CTO

If set:

   (add-to-list 'grep-find-ignored-directories "build" t)

and try search M-x rgrep in hierarchy:

   build/xxx
   src/yyy
   src/build
   build

   $ mkdir  build src;
   $ touch  build/xxx src/yyy src/build

'find' part of 'rgrep' print only (I simplify expression of 'rgrep'):

   $ find . '(' -path '*/build' -o -path '*/lib' ')' \
      -prune -o  -type f  -print
./src/yyy

Correct one is:

   $ find . '(' -type d -path '*/build' -o -path '*/lib' ')' \
      -prune -o  -type f  -print
./src/build
./src/yyy

So any dir added to 'grep-find-ignored-directories' also affected to
*regular* file names...

I previously file bug to findutils, but I am wrong:

   http://savannah.gnu.org/bugs/?34159

This is Emacs bug.

I suggest fix in patch.
=== modified file 'lisp/progmodes/grep.el'
--- lisp/progmodes/grep.el	2011-02-10 19:13:31 +0000
+++ lisp/progmodes/grep.el	2011-08-31 21:35:14 +0000
@@ -958,7 +958,7 @@
 		       (and grep-find-ignored-directories
 			    (concat (shell-quote-argument "(")
 				    ;; we should use shell-quote-argument here
-				    " -path "
+				    " -type d -path "
 				    (mapconcat
 				     #'(lambda (ignore)
 					 (cond ((stringp ignore)