GNU bug report logs - #29303
25.2; vc-git-grep should shell-escape FILES

Previous Next

Package: emacs;

Reported by: Angus Lees <gus <at> inodes.org>

Date: Wed, 15 Nov 2017 06:51:02 UTC

Severity: normal

Found in version 25.2

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #20 received at 29303 <at> debbugs.gnu.org (full text, mbox):

From: Robert Pluim <rpluim <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 29303 <at> debbugs.gnu.org, gus <at> inodes.org
Subject: Re: bug#29303: 25.2; vc-git-grep should shell-escape FILES
Date: Wed, 15 Nov 2017 21:17:35 +0100
Eli Zaretskii <eliz <at> gnu.org> writes:

>> From: Robert Pluim <rpluim <at> gmail.com>
>> diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
>> index ed85603f82..43164b4fcf 100644
>> --- a/lisp/vc/vc-git.el
>> +++ b/lisp/vc/vc-git.el
>> @@ -1428,7 +1428,7 @@ vc-git-grep
>>  				   nil nil 'grep-history)
>>  	     nil))
>>        (t (let* ((regexp (grep-read-regexp))
>> -		(files (grep-read-files regexp))
>> +		(files (mapconcat #'shell-quote-argument (split-string (grep-read-files regexp)) " "))
>>  		(dir (read-directory-name "In directory: "
>>  					  nil default-directory t)))
>>  	   (list regexp files dir))))))
>
> That's okay portability-wise, but why do you need split-string?
> AFAIU, grep-read-files reads a single pattern, no?

grep-read-files has support for grep-files-aliases which allows you to
eg say 'cc' and have it expand to "*.cc *.cxx *.cpp *.C *.CC *.c++"

It's also possible to enter multiple patterns using grep-read-files,
although you have to do things like ^Q<SPC> to get a space into the
string. That might be worth fixing separately.

Robert




This bug report was last modified 7 years and 272 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.