Subject: 25.3; rgrep, grep-read-files confusingly completes file names
From: ヌエルモリノ <[email-masked]>
To: [email-masked]
Date: Wed, 27 Sep 2017 00:01:56 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

rgrep uses grep-read-files to read a filename as the second argument.
However, rgrep cannot actually accept a filename as the second argument.

For example, this is a normal rgrep call

  (rgrep "foo" "*.el" "/some/dir/" nil)

"*.el" is read with grep-read-files, which uses filename completion.
However, actually entering a filename doesn’t really work

  (rgrep "foo" "foo/*.el" "/some/dir/" nil)
  (rgrep "foo" "foo/bar.el" "/some/dir/" nil)

The second argument is passed to the find program as an -iname argument
as a glob, which matches against strictly the filename (e.g., like
file-name-nondirectory) and not the path.

There are a few points that could be improved here.

1. The grep-read-files prompt is confusing.  The prompt is: "Search for
\"foo\" in files: ".  It is not clear that this is asking for a filename
glob.

2. grep-read-files uses filename completion, which suggests that the
user should enter a filename.  This is very misleading as most paths
will fail to work, passing a filename without a slash will likely not
work as the user would expect, and almost certainly a glob would be the
desired input.

In GNU Emacs 25.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.22.19)
 of 2017-09-16 built on juergen
Windowing system distributor 'The X.Org Foundation', version 11.0.11903000
Configured using:
 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --with-x-toolkit=gtk3 --with-xft --with-modules
 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong
 -fno-plt' CPPFLAGS=-D_FORTIFY_SOURCE=2
 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'