GNU bug report logs -
#23453
25.0.93; dired-do-find-regexp does not work on Windows even after installing GNU find and grep
Previous Next
Reported by: Kaushal Modi <kaushal.modi <at> gmail.com>
Date: Wed, 4 May 2016 19:42:02 UTC
Severity: normal
Found in version 25.0.93
Done: Kaushal Modi <kaushal.modi <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #17 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
I have verified the below patch to solve this issue:
Can you please review/fix/commit as needed?
From a20c0f42dbbecb356b286875b684f01fd25c6ebb Mon Sep 17 00:00:00 2001
From: Kaushal Modi <kaushal.modi <at> gmail.com>
Date: Wed, 4 May 2016 17:06:44 -0400
Subject: [PATCH] Shell escape arguments for find cmd used by xref
* lisp/progmodes/xref.el (xref-collect-matches): When the dir has
characters like spaces (e.g. /tmp/some dir/), those need to be escaped
before passing it as an argument to the shell command like `find'.
The escaping is done using `shell-quote-argument' (bug#23453).
---
lisp/progmodes/xref.el | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index 62cef23..ff87bc3 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -890,7 +890,7 @@ xref-collect-matches
(grep-highlight-matches nil)
(command (xref--rgrep-command (xref--regexp-to-extended regexp)
files
- (expand-file-name dir)
+ (shell-quote-argument
(expand-file-name dir))
ignores))
(buf (get-buffer-create " *xref-grep*"))
(grep-re (caar grep-regexp-alist))
--
2.6.0.rc0.24.gec371ff
On Wed, May 4, 2016 at 4:24 PM Kaushal Modi <kaushal.modi <at> gmail.com> wrote:
> Oh, as it turns out, the bug is there but not related to not finding
> find/grep.
>
> It IS actually finding the find.exe and grep.exe correctly using the
> exec-path and/or (setenv "PATH" ..) hacks.
>
> The problem was that the file was in a path with spaces in it:
>
> C:\Users\kmodi\Desktop\_keep this folder empty\NEWS.txt
>
> When I try using `A' in dired with above file marked and search for
> "Emacs", I get "No matches for: Emacs". Note the spaces in the directory
> name: "_keep this folder empty"
>
> But when I copied NEWS.txt to C:\Users\kmodi\Desktop\NEWS.txt and then
> did the same "Emacs" search using `A' in dired, it worked!
>
> I can recreate this bug in RHEL too!
>
> (1) mkdir -p /tmp/some\ dir
> (2) Download http://git.savannah.gnu.org/cgit/emacs.git/plain/etc/NEWS as
> /tmp/some\ dir/NEWS.txt
> (3) In emacs -Q, use C-x d to open dired in /tmp/some\ dir/
> (4) Mark NEWS.txt using `m' key
> (5) Then I do `A' and search for "Emacs" (or probably anything else too)
> (6) You should get "No matches for: Emacs"
>
> Can you please rename the bug title to "25.0.93; dired-do-find-regexp
> does not work when path contains spaces"?
>
> Blocking bug?
> --
>
> --
> Kaushal Modi
>
--
--
Kaushal Modi
[Message part 2 (text/html, inline)]
This bug report was last modified 9 years and 17 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.