# HG changeset patch # User Eli Zaretskii # Date 1294595577 -7200 # Node ID 785e3b6e720b0bf569987321ff55843b4015237f # Parent 6335f5f3cb72d115b0af7b4a1eaac2bcc21d863a 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. diff -r 6335f5f3cb72 -r 785e3b6e720b lisp/ChangeLog --- 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 + + * 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 * buff-menu.el (Buffer-menu-buffer-list): New var. diff -r 6335f5f3cb72 -r 785e3b6e720b lisp/jka-compr.el --- 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 diff -r 6335f5f3cb72 -r 785e3b6e720b lisp/progmodes/grep.el --- 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 %s " grep-program grep-options))) (cond ((eq grep-find-use-xargs 'gnu) - (format "%s . -type f -print0 | %s -0 -e %s" + (format "%s . -type f -print0 | \"%s\" -0 -e %s" find-program xargs-program gcmd)) ((eq grep-find-use-xargs 'exec) (format "%s . -type f -exec %s {} %s %s" find-program gcmd null-device (shell-quote-argument ";"))) (t - (format "%s . -type f -print | %s %s" + (format "%s . -type f -print | \"%s\" %s" find-program xargs-program gcmd)))))))) (when (eq grep-highlight-matches 'auto-detect) (setq grep-highlight-matches