Subject: bug#71078: closed (Re: bug#71078: rgrep accepts wildcard, then throws it away)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 01 Mar 2025 02:26:02 +0000

Your bug report

#71078: rgrep accepts wildcard, then throws it away

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

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

Subject: Re: bug#71078: rgrep accepts wildcard, then throws it away
From: Stefan Kangas <[email-masked]>
To: Stefan Monnier <[email-masked]>
Cc: Eli Zaretskii <[email-masked]>, Dan Jacobson <[email-masked]>, [email-masked], Stefan Monnier <[email-masked]>
Date: Fri, 28 Feb 2025 18:25:01 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Stefan Monnier <[email-masked]> writes:

>> I think this is expected, and not a bug, due to this part in grep.el:
>>
>>      (unless (and dir (file-accessible-directory-p dir))
>>        (setq dir default-directory))
>>
>> I'd rather it would signal an error in this case, to be honest, because
>
> Agreed.  The above can only make sense when `dir` doesn't matter.

Now done on master, and closing the bug.

Subject: rgrep accepts wildcard, then throws it away
From: Dan Jacobson <[email-masked]>
To: [email-masked]
Date: Mon, 20 May 2024 19:48:53 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

When rgrep asks for the Base directory, and the user gives a wildcard,
Base directory: /usr/share/doc/exim4*
it is thrown away, and this instead gets run:
(rgrep "minimaldns" "* .*" "/usr/share/doc/exim4")

In fact this is a very special case, as there happens to be a directory
with just that name,

/usr/share/doc:
  wildcard exim4*
  drwxr-xr-x 2 4096 04-13 07:09 exim4-daemon-light
  drwxr-xr-x 3 4096 04-13 07:09 exim4-base
  drwxr-xr-x 3 4096 04-13 07:09 exim4-config
  drwxr-xr-x 2 4096 2023-11-07  exim4-doc-info
  drwxr-xr-x 3 4096 2023-11-07  exim4-doc-html
  lrwxrwxrwx 1   10 2016-12-08  exim4 -> exim4-base

Normally rgrep won't let the user even proceed if e.g., the user just gave
Base directory: /usr/share/doc/exi*
but in the case where there is in fact a directory that matches exim4,
the "*" gets thrown away!

In fact if we do add the * here,
(rgrep "minimaldns" "* .*" "/usr/share/doc/exim4*")
and do ^X^E, we end up searching ~/ !

emacs-version "29.3"