Mercurial > emacs
changeset 103531:74d482177a44
* net/tramp-smb.el (tramp-smb-file-name-handler-alist): Add
handler for `dired-uncache'.
(tramp-smb-handle-file-local-copy): Cleanup in case of error.
author | Michael Albinus <michael.albinus@gmx.de> |
---|---|
date | Mon, 22 Jun 2009 21:08:29 +0000 |
parents | bd92ac143136 |
children | 898b2151d69f |
files | lisp/net/tramp-smb.el |
diffstat | 1 files changed, 7 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/net/tramp-smb.el Mon Jun 22 21:07:52 2009 +0000 +++ b/lisp/net/tramp-smb.el Mon Jun 22 21:08:29 2009 +0000 @@ -139,7 +139,7 @@ (directory-files-and-attributes . tramp-smb-handle-directory-files-and-attributes) (dired-call-process . ignore) (dired-compress-file . ignore) - ;; `dired-uncache' performed by default handler + (dired-uncache . tramp-handle-dired-uncache) ;; `expand-file-name' not necessary because we cannot expand "~/" (file-accessible-directory-p . tramp-smb-handle-file-directory-p) (file-attributes . tramp-smb-handle-file-attributes) @@ -375,16 +375,18 @@ (defun tramp-smb-handle-file-local-copy (filename) "Like `file-local-copy' for Tramp files." (with-parsed-tramp-file-name filename nil + (unless (file-exists-p filename) + (tramp-error + v 'file-error + "Cannot make local copy of non-existing file `%s'" filename)) (let ((file (tramp-smb-get-localname localname t)) (tmpfile (tramp-compat-make-temp-file filename))) - (unless (file-exists-p filename) - (tramp-error - v 'file-error - "Cannot make local copy of non-existing file `%s'" filename)) (tramp-message v 4 "Fetching %s to tmp file %s..." filename tmpfile) (if (tramp-smb-send-command v (format "get \"%s\" %s" file tmpfile)) (tramp-message v 4 "Fetching %s to tmp file %s...done" filename tmpfile) + ;; Oops, an error. We shall cleanup. + (delete-file tmpfile) (tramp-error v 'file-error "Cannot make local copy of file `%s'" filename))