From 91192f4faba689f4d8fc4912bc521ec98ff0358f Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Mon, 5 Jan 2009 19:40:55 +0000 Subject: [PATCH] * net/tramp-smb.el (tramp-smb-handle-copy-file) (tramp-smb-handle-rename-file, tramp-smb-handle-write-region): Delete temporary file in case of error. --- lisp/ChangeLog | 10 ++++++++++ lisp/net/tramp-smb.el | 25 ++++++++++++++++--------- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1437ddeed07..1009a381222 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,13 @@ +2009-01-05 Michael Albinus + + * net/tramp.el (tramp-handle-load) + (tramp-do-copy-or-rename-file-directly) + (tramp-handle-file-local-copy, tramp-handle-insert-file-contents) + (tramp-handle-write-region) + * net/tramp-smb.el (tramp-smb-handle-copy-file) + (tramp-smb-handle-rename-file, tramp-smb-handle-write-region): + Delete temporary file in case of error. + 2009-01-05 Agustín Martín * textmodes/ispell.el (ispell-check-version): Use (with-temp-buffer) diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el index 4ce8aa7fce6..b9dc8731215 100644 --- a/lisp/net/tramp-smb.el +++ b/lisp/net/tramp-smb.el @@ -216,7 +216,10 @@ PRESERVE-UID-GID is completely ignored." (if tmpfile ;; Remote filename. - (rename-file tmpfile newname ok-if-already-exists) + (condition-case err + (rename-file tmpfile newname ok-if-already-exists) + (error (delete-file tmpfile) + (signal (car err) (cdr err)))) ;; Remote newname. (when (file-directory-p newname) @@ -548,10 +551,13 @@ PRESERVE-UID-GID is completely ignored." (let ((tmpfile (file-local-copy filename))) (if tmpfile - ;; remote filename - (rename-file tmpfile newname ok-if-already-exists) + ;; Remote filename. + (condition-case err + (rename-file tmpfile newname ok-if-already-exists) + (error (delete-file tmpfile) + (signal (car err) (cdr err)))) - ;; remote newname + ;; Remote newname. (when (file-directory-p newname) (setq newname (expand-file-name (file-name-nondirectory filename) newname))) @@ -618,12 +624,13 @@ errors for shares like \"C$/\", which are common in Microsoft Windows." (list start end tmpfile append 'no-message lockname))) (tramp-message v 5 "Writing tmp file %s to file %s..." tmpfile filename) - (if (tramp-smb-send-command v (format "put %s \"%s\"" tmpfile file)) - (tramp-message - v 5 "Writing tmp file %s to file %s...done" tmpfile filename) - (tramp-error v 'file-error "Cannot write `%s'" filename)) + (unwind-protect + (if (tramp-smb-send-command v (format "put %s \"%s\"" tmpfile file)) + (tramp-message + v 5 "Writing tmp file %s to file %s...done" tmpfile filename) + (tramp-error v 'file-error "Cannot write `%s'" filename)) + (delete-file tmpfile)) - (delete-file tmpfile) (unless (equal curbuf (current-buffer)) (tramp-error v 'file-error -- 2.11.4.GIT