From 7fa2a06f9092cc1929f469cd5367e78841ec5fb6 Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Mon, 10 Jan 2011 21:36:09 +0100 Subject: * net/tramp.el (tramp-find-inline-compress) (tramp-get-inline-coding): Quote command after pipe symbol for local calls under W32. (Bug#6784) --- lisp/ChangeLog | 6 ++++++ lisp/net/tramp.el | 34 +++++++++++++++++++++++++++++----- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index fa018142a0f..71fb9c53c92 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2011-01-10 Michael Albinus + + * net/tramp.el (tramp-find-inline-compress) + (tramp-get-inline-coding): Quote command after pipe symbol for + local calls under W32. (Bug#6784) + 2011-01-10 Michael Albinus * net/tramp.el (tramp-default-method): Initialize with pscp/plink diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 4fb8d7b7862..c40d65ca913 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -7362,9 +7362,17 @@ Goes through the list `tramp-inline-compress-commands'." vec 5 "Checking local compress command `%s', `%s' for sanity" compress decompress) - (unless (zerop (tramp-call-local-coding-command - (format "echo %s | %s | %s" - magic compress decompress) nil nil)) + (unless + (zerop + (tramp-call-local-coding-command + (format + ;; Windows shells need the program file name after + ;; the pipe symbol be quoted if they use forward + ;; slashes as directory separators. + (if (memq system-type '(windows-nt)) + "echo %s | \"%s\" | \"%s\"" + "echo %s | %s | %s") + magic compress decompress) nil nil)) (throw 'next nil)) (tramp-message vec 5 @@ -8645,9 +8653,25 @@ function cell is returned to be applied on a buffer." ((symbolp coding) coding) ((and compress (string-match "decoding" prop)) - (format "(%s | %s >%%s)" coding compress)) + (format + ;; Windows shells need the program file name after + ;; the pipe symbol be quoted if they use forward + ;; slashes as directory separators. + (if (and (string-match "local" prop) + (memq system-type '(windows-nt))) + "(%s | \"%s\" >%%s)" + "(%s | %s >%%s)") + coding compress)) (compress - (format "(%s <%%s | %s)" compress coding)) + (format + ;; Windows shells need the program file name after + ;; the pipe symbol be quoted if they use forward + ;; slashes as directory separators. + (if (and (string-match "local" prop) + (memq system-type '(windows-nt))) + "(%s <%%s | \"%s\")" + "(%s <%%s | %s)") + compress coding)) ((string-match "decoding" prop) (format "%s >%%s" coding)) (t -- cgit v1.2.1