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"