Mercurial > emacs
changeset 112249:785e3b6e720b
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.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sun, 09 Jan 2011 19:52:57 +0200 |
parents | 6335f5f3cb72 |
children | baabeab57e3e |
files | lisp/ChangeLog lisp/jka-compr.el lisp/progmodes/grep.el |
diffstat | 3 files changed, 17 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Sat Jan 08 17:15:51 2011 -0500 +++ b/lisp/ChangeLog Sun Jan 09 19:52:57 2011 +0200 @@ -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.
--- a/lisp/jka-compr.el Sat Jan 08 17:15:51 2011 -0500 +++ b/lisp/jka-compr.el Sun Jan 09 19:52:57 2011 +0200 @@ -166,8 +166,11 @@ (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
--- a/lisp/progmodes/grep.el Sat Jan 08 17:15:51 2011 -0500 +++ b/lisp/progmodes/grep.el Sun Jan 09 19:52:57 2011 +0200 @@ -561,7 +561,10 @@ (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 @@ (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