--- Begin Message ---
Subject: |
25.3; rgrep, grep-read-files confusingly completes file names |
Date: |
Wed, 27 Sep 2017 00:01:56 -0700 |
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'
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#28615: [PATCH] Clarify what grep-read-files wants |
Date: |
Mon, 09 Oct 2017 16:41:23 +0300 |
> From: Allen Li <address@hidden>
> Date: Wed, 4 Oct 2017 21:15:32 -0700
>
> grep-read-files wants a filename glob, not a filename/path.
>
> * lisp/progmodes/grep.el (grep-read-files): Clarify docstring.
> Use file aliases for completion.
> Clarify completing-read prompt.
Thanks, I installed a slightly different change for the first 2 parts,
but didn't change the function we pass to completing-read.
With that, I'm closing the bug report.
--- End Message ---