[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r111109: * net/tramp-sh.el (tramp-do-
From: |
Michael Albinus |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r111109: * net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band): |
Date: |
Wed, 05 Dec 2012 15:06:06 +0100 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 111109
committer: Michael Albinus <address@hidden
branch nick: trunk
timestamp: Wed 2012-12-05 15:06:06 +0100
message:
* net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band):
Check return code of copy command.
modified:
lisp/ChangeLog
lisp/net/tramp-sh.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2012-12-05 10:09:54 +0000
+++ b/lisp/ChangeLog 2012-12-05 14:06:06 +0000
@@ -1,5 +1,8 @@
2012-12-05 Michael Albinus <address@hidden>
+ * net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band):
+ Check return code of copy command.
+
* net/tramp-adb.el (tramp-adb-sdk-dir, tramp-adb-prompt): Use
group `tramp'. Add version.
=== modified file 'lisp/net/tramp-sh.el'
--- a/lisp/net/tramp-sh.el 2012-11-27 14:55:25 +0000
+++ b/lisp/net/tramp-sh.el 2012-12-05 14:06:06 +0000
@@ -2379,17 +2379,41 @@
;; last longer than 60 secs.
(let ((p (let ((default-directory
(tramp-compat-temporary-file-directory)))
- (apply 'start-process
+ (apply 'start-process-shell-command
(tramp-get-connection-name v)
(tramp-get-connection-buffer v)
copy-program
- (append copy-args (list source target))))))
+ (append
+ copy-args
+ (list
+ (shell-quote-argument source)
+ (shell-quote-argument target))
+ (unless (memq system-type '(windows-nt))
+ '(";" "echo"
+ "tramp_exit_status" "$?")))))))
(tramp-message
orig-vec 6 "%s"
(mapconcat 'identity (process-command p) " "))
(tramp-compat-set-process-query-on-exit-flag p nil)
(tramp-process-actions
- p v nil tramp-actions-copy-out-of-band)))
+ p v nil tramp-actions-copy-out-of-band)
+
+ ;; Check the return code. This does not work under
+ ;; MS Windows.
+ (unless (memq system-type '(windows-nt))
+ (goto-char (point-max))
+ (unless
+ (re-search-backward "tramp_exit_status [0-9]+" nil t)
+ (tramp-error
+ orig-vec 'file-error
+ "Couldn't find exit status of `%s'" (process-command p)))
+ (skip-chars-forward "^ ")
+ (unless (zerop (read (current-buffer)))
+ (forward-line -1)
+ (tramp-error
+ orig-vec 'file-error
+ "Error copying: `%s'"
+ (buffer-substring (point-min) (point-at-eol)))))))
;; Reset the transfer process properties.
(tramp-message orig-vec 6 "\n%s" (buffer-string))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r111109: * net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band):,
Michael Albinus <=