1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-14 10:51:20 -07:00

* tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band): Check error

code also on MS-Windows machines.
This commit is contained in:
Michael Albinus 2012-12-05 16:50:32 +01:00
parent d5f97f6295
commit 82176fcdeb

View file

@ -2387,10 +2387,9 @@ The method used must be an out-of-band method."
copy-args
(list
(shell-quote-argument source)
(shell-quote-argument target))
(unless (memq system-type '(windows-nt))
'(";" "echo"
"tramp_exit_status" "$?")))))))
(shell-quote-argument target)
"&&" "echo" "tramp_exit_status" "0"
"||" "echo" "tramp_exit_status" "1"))))))
(tramp-message
orig-vec 6 "%s"
(mapconcat 'identity (process-command p) " "))
@ -2398,22 +2397,20 @@ The method used must be an out-of-band method."
(tramp-process-actions
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)))))))
;; Check the return code.
(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))