bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#51711: 28.0.60; rgrep fails to pass the search directory to rgrep-de


From: Dmitry Gutov
Subject: bug#51711: 28.0.60; rgrep fails to pass the search directory to rgrep-default-command
Date: Thu, 11 Nov 2021 03:17:46 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0

Hi!

On 09.11.2021 13:02, Phil Sainty wrote:
This was intentionally changed in commit c6ee95ddeef:

https://git.savannah.gnu.org/cgit/emacs.git/commit?id=c6ee95ddeefc17410e15090539d0cb220ab6947c

        (setq dir (file-name-as-directory (expand-file-name dir)))
-      (let ((command (rgrep-default-command regexp files dir)))
+      (let ((command (rgrep-default-command regexp files nil)))

It's not clear to me why this was done, but rgrep-default-command
cannot produce the correct output if it isn't given the search
directory.  In particular, rgrep-find-ignored-directories and
rgrep-find-ignored-files no longer work as expected, if the
directory is not passed, for grep-find-ignored-directories and
grep-find-ignored-files values using the cons cell format, as
the functions specified need to know the search directory.

The effect on the *-ignores function is something we all have missed, alas.

This only matters when grep-find-ignored-directories or grep-find-ignored-files have been customized to cons values with functions, right?

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20719#22 may be the
justification ("it makes the last argument to rgrep-default-command
look superfluous."), but that's definitely not true.

I don't have my head around the other changes made for bug#20719
and so it's not clear to me whether fixing this is as simple as
reverting that one line, or if doing so will cause some other
regression.

It would replace "." in the resulting command with the absolute name of the directory, which would affect the output, for one thing.

CCing Dmitry.  Can you recall specifically why that line was changed?

Does the below patch work for you? I suppose the answer depends on whether the functions in the customized car values will known what to do with ".".


diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el
index ec2850737c..8cc3e57378 100644
--- a/lisp/progmodes/grep.el
+++ b/lisp/progmodes/grep.el
@@ -1218,7 +1218,7 @@ rgrep
                                   grep-find-command)))
            (compilation-start regexp 'grep-mode))
       (setq dir (file-name-as-directory (expand-file-name dir)))
-      (let ((command (rgrep-default-command regexp files nil)))
+      (let ((command (rgrep-default-command regexp files ".")))
        (when command
          (if confirm
              (setq command





reply via email to

[Prev in Thread] Current Thread [Next in Thread]