1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-02-07 20:54:32 +00:00

Fix bug #6684 with shell pipelines on MS-Windows.

progmodes/grep.el (grep-compute-defaults): Quote the program
 file name after the pipe symbol in Grep templates.
 jka-compr.el (jka-compr-partial-uncompress): Likewise.

Fixes: debbugs:6784
This commit is contained in:
Eli Zaretskii 2011-01-09 19:52:57 +02:00
parent 320912fb3d
commit 88ecd0a566
3 changed files with 17 additions and 5 deletions

View File

@ -1,3 +1,9 @@
2011-01-09 Eli Zaretskii <eliz@gnu.org>
* progmodes/grep.el (grep-compute-defaults): Quote the program
file name after the pipe symbol in Grep templates. (Bug#6784)
* jka-compr.el (jka-compr-partial-uncompress): Likewise.
2011-01-08 Lennart Borgman <lennart.borgman@gmail.com>
* buff-menu.el (Buffer-menu-buffer-list): New var.

View File

@ -166,8 +166,11 @@ to keep: LEN chars starting BEG chars from the beginning."
(unwind-protect
(or (memq (call-process
jka-compr-shell infile t nil "-c"
;; Windows shells need the program file name
;; after the pipe symbol be quoted if they use
;; forward slashes as directory separators.
(format
"%s %s 2> %s | %s bs=%d skip=%d %s 2> %s"
"%s %s 2> %s | \"%s\" bs=%d skip=%d %s 2> %s"
prog
(mapconcat 'identity args " ")
err-file

View File

@ -561,7 +561,10 @@ Set up `compilation-exit-message-function' and run `grep-setup-hook'."
(unless grep-find-command
(setq grep-find-command
(cond ((eq grep-find-use-xargs 'gnu)
(format "%s . -type f -print0 | %s -0 -e %s"
;; Windows shells need the program file name
;; after the pipe symbol be quoted if they use
;; forward slashes as directory separators.
(format "%s . -type f -print0 | \"%s\" -0 -e %s"
find-program xargs-program grep-command))
((eq grep-find-use-xargs 'exec)
(let ((cmd0 (format "%s . -type f -exec %s"
@ -572,21 +575,21 @@ Set up `compilation-exit-message-function' and run `grep-setup-hook'."
(shell-quote-argument ";"))
(1+ (length cmd0)))))
(t
(format "%s . -type f -print | %s %s"
(format "%s . -type f -print | \"%s\" %s"
find-program xargs-program grep-command)))))
(unless grep-find-template
(setq grep-find-template
(let ((gcmd (format "%s <C> %s <R>"
grep-program grep-options)))
(cond ((eq grep-find-use-xargs 'gnu)
(format "%s . <X> -type f <F> -print0 | %s -0 -e %s"
(format "%s . <X> -type f <F> -print0 | \"%s\" -0 -e %s"
find-program xargs-program gcmd))
((eq grep-find-use-xargs 'exec)
(format "%s . <X> -type f <F> -exec %s {} %s %s"
find-program gcmd null-device
(shell-quote-argument ";")))
(t
(format "%s . <X> -type f <F> -print | %s %s"
(format "%s . <X> -type f <F> -print | \"%s\" %s"
find-program xargs-program gcmd))))))))
(when (eq grep-highlight-matches 'auto-detect)
(setq grep-highlight-matches