unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#51711: 28.0.60; rgrep fails to pass the search directory to rgrep-default-command
@ 2021-11-09 10:02 Phil Sainty
  2021-11-11  0:17 ` Dmitry Gutov
  0 siblings, 1 reply; 3+ messages in thread
From: Phil Sainty @ 2021-11-09 10:02 UTC (permalink / raw)
  To: 51711; +Cc: Dmitry Gutov

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.

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.

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


-Phil




In GNU Emacs 28.0.60 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo 
version 1.15.10, Xaw scroll bars)
  of 2021-10-07 built on phil-lp
Repository revision: f7e6c199bf5b915e000bad964f3be2323d07647e
Repository branch: emacs-28
Windowing system distributor 'The X.Org Foundation', version 
11.0.12008000
System Description: Ubuntu 18.04.6 LTS






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

* bug#51711: 28.0.60; rgrep fails to pass the search directory to rgrep-default-command
  2021-11-09 10:02 bug#51711: 28.0.60; rgrep fails to pass the search directory to rgrep-default-command Phil Sainty
@ 2021-11-11  0:17 ` Dmitry Gutov
  2021-11-11  1:48   ` Phil Sainty
  0 siblings, 1 reply; 3+ messages in thread
From: Dmitry Gutov @ 2021-11-11  0:17 UTC (permalink / raw)
  To: Phil Sainty, 51711

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





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

* bug#51711: 28.0.60; rgrep fails to pass the search directory to rgrep-default-command
  2021-11-11  0:17 ` Dmitry Gutov
@ 2021-11-11  1:48   ` Phil Sainty
  0 siblings, 0 replies; 3+ messages in thread
From: Phil Sainty @ 2021-11-11  1:48 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: 51711, DG

On 2021-11-11 13:17, Dmitry Gutov wrote:
> This only matters when grep-find-ignored-directories or
> grep-find-ignored-files have been customized to cons values
> with functions, right?

Yes, I believe so.

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

Unfortunately I think "." will (at best) be recognised as the
default-directory for the buffer from which the rgrep command was
initiated -- there's no way for it to derive the specified search
directory from that.







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

end of thread, other threads:[~2021-11-11  1:48 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-09 10:02 bug#51711: 28.0.60; rgrep fails to pass the search directory to rgrep-default-command Phil Sainty
2021-11-11  0:17 ` Dmitry Gutov
2021-11-11  1:48   ` Phil Sainty

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).