summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorMichael Albinus <michael.albinus@gmx.de>2014-02-10 14:54:33 +0100
committerMichael Albinus <michael.albinus@gmx.de>2014-02-10 14:54:33 +0100
commitc7db4c06c43c1caf7b51efb82ca7e7bad4fb9661 (patch)
tree78831775de6761a2e08ab81aaa1bf2587619540d /lisp
parent5cef7abdbc231cb6b84595c34a4d9dc302dc9e34 (diff)
downloademacs-c7db4c06c43c1caf7b51efb82ca7e7bad4fb9661.tar.gz
emacs-c7db4c06c43c1caf7b51efb82ca7e7bad4fb9661.tar.bz2
emacs-c7db4c06c43c1caf7b51efb82ca7e7bad4fb9661.zip
* net/tramp-sh.el (tramp-sh-handle-vc-registered): Apply heredoc
script more robustly.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/net/tramp-sh.el27
2 files changed, 23 insertions, 9 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 6a2cdabc1f1..d67d626f131 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2014-02-10 Michael Albinus <michael.albinus@gmx.de>
+
+ * net/tramp-sh.el (tramp-sh-handle-vc-registered): Apply heredoc
+ script more robustly.
+
2014-02-10 Lars Ingebrigtsen <larsi@gnus.org>
* dired.el (dired-get-marked-files): Doc fix (bug#11534).
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 8d3c4c2c58b..fc906b343cb 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -3308,15 +3308,24 @@ the result will be a local, non-Tramp, filename."
(dolist
(elt
- (tramp-send-command-and-read
- v
- (format
- "tramp_vc_registered_read_file_names <<'%s'\n%s\n%s\n"
- tramp-end-of-heredoc
- (mapconcat 'tramp-shell-quote-argument
- tramp-vc-registered-file-names
- "\n")
- tramp-end-of-heredoc)))
+ (ignore-errors
+ ;; We cannot use `tramp-send-command-and-read',
+ ;; because this does not cooperate well with
+ ;; heredoc documents.
+ (tramp-send-command
+ v
+ (format
+ "tramp_vc_registered_read_file_names <<'%s'\n%s\n%s\n"
+ tramp-end-of-heredoc
+ (mapconcat 'tramp-shell-quote-argument
+ tramp-vc-registered-file-names
+ "\n")
+ tramp-end-of-heredoc))
+ (tramp-send-command-and-check v nil)
+ (with-current-buffer (tramp-get-connection-buffer v)
+ ;; Read the expression.
+ (goto-char (point-min))
+ (read (current-buffer)))))
(tramp-set-file-property
v (car elt) (cadr elt) (cadr (cdr elt))))))