Mercurial > emacs
comparison lisp/net/tramp-smb.el @ 108244:2ee48fcc701c
Add FORCE argument to `delete-file'.
* net/ange-ftp.el (ange-ftp-del-tmp-name): Make it a defun,
forcing to delete the temporary file.
(ange-ftp-delete-file): Add FORCE arg.
(ange-ftp-rename-remote-to-remote)
(ange-ftp-rename-local-to-remote, ange-ftp-rename-remote-to-local)
(ange-ftp-load, ange-ftp-compress, ange-ftp-uncompress): Force
file deletion.
* net/tramp-compat.el (tramp-compat-delete-file): New defun.
* net/tramp.el (tramp-handle-delete-file): Add FORCE arg.
(tramp-handle-make-symbolic-link, tramp-handle-load)
(tramp-do-copy-or-rename-file-via-buffer)
(tramp-do-copy-or-rename-file-directly)
(tramp-do-copy-or-rename-file-out-of-band)
(tramp-handle-process-file, tramp-handle-call-process-region)
(tramp-handle-shell-command, tramp-handle-file-local-copy)
(tramp-handle-insert-file-contents, tramp-handle-write-region)
(tramp-delete-temp-file-function): Use `tramp-compat-delete-file'.
* net/tramp-fish.el (tramp-fish-handle-delete-file): Add FORCE arg.
(tramp-fish-handle-make-symbolic-link)
(tramp-fish-handle-process-file): Use `tramp-compat-delete-file'.
* net/tramp-ftp.el (tramp-ftp-file-name-handler): Use
`tramp-compat-delete-file'.
* net/tramp-gvfs.el (tramp-gvfs-handle-delete-file): Add FORCE arg.
(tramp-gvfs-handle-write-region): Use `tramp-compat-delete-file'.
* net/tramp-imap.el (tramp-imap-handle-delete-file): Add FORCE arg.
(tramp-imap-do-copy-or-rename-file): Use `tramp-compat-delete-file'.
* net/tramp-smb.el (tramp-smb-handle-delete-file): Add FORCE arg.
(tramp-smb-handle-copy-file, tramp-smb-handle-file-local-copy)
(tramp-smb-handle-rename-file, tramp-smb-handle-write-region): Use
`tramp-compat-delete-file'.
author | Michael Albinus <michael.albinus@gmx.de> |
---|---|
date | Wed, 05 May 2010 12:20:23 +0200 |
parents | 93125d6fab29 |
children | bfc1be04834c |
comparison
equal
deleted
inserted
replaced
108243:be3f6d650654 | 108244:2ee48fcc701c |
---|---|
340 (if tmpfile | 340 (if tmpfile |
341 ;; Remote filename. | 341 ;; Remote filename. |
342 (condition-case err | 342 (condition-case err |
343 (rename-file tmpfile newname ok-if-already-exists) | 343 (rename-file tmpfile newname ok-if-already-exists) |
344 ((error quit) | 344 ((error quit) |
345 (delete-file tmpfile) | 345 (tramp-compat-delete-file tmpfile 'force) |
346 (signal (car err) (cdr err)))) | 346 (signal (car err) (cdr err)))) |
347 | 347 |
348 ;; Remote newname. | 348 ;; Remote newname. |
349 (when (file-directory-p newname) | 349 (when (file-directory-p newname) |
350 (setq newname (expand-file-name | 350 (setq newname (expand-file-name |
402 (goto-char (point-min)) | 402 (goto-char (point-min)) |
403 (search-forward-regexp tramp-smb-errors nil t) | 403 (search-forward-regexp tramp-smb-errors nil t) |
404 (tramp-error | 404 (tramp-error |
405 v 'file-error "%s `%s'" (match-string 0) directory)))))) | 405 v 'file-error "%s `%s'" (match-string 0) directory)))))) |
406 | 406 |
407 (defun tramp-smb-handle-delete-file (filename) | 407 (defun tramp-smb-handle-delete-file (filename &optional force) |
408 "Like `delete-file' for Tramp files." | 408 "Like `delete-file' for Tramp files." |
409 (setq filename (expand-file-name filename)) | 409 (setq filename (expand-file-name filename)) |
410 (when (file-exists-p filename) | 410 (when (file-exists-p filename) |
411 (with-parsed-tramp-file-name filename nil | 411 (with-parsed-tramp-file-name filename nil |
412 ;; We must also flush the cache of the directory, because | 412 ;; We must also flush the cache of the directory, because |
609 (if (tramp-smb-send-command | 609 (if (tramp-smb-send-command |
610 v (format "get \"%s\" \"%s\"" (tramp-smb-get-localname v) tmpfile)) | 610 v (format "get \"%s\" \"%s\"" (tramp-smb-get-localname v) tmpfile)) |
611 (tramp-message | 611 (tramp-message |
612 v 4 "Fetching %s to tmp file %s...done" filename tmpfile) | 612 v 4 "Fetching %s to tmp file %s...done" filename tmpfile) |
613 ;; Oops, an error. We shall cleanup. | 613 ;; Oops, an error. We shall cleanup. |
614 (delete-file tmpfile) | 614 (tramp-compat-delete-file tmpfile 'force) |
615 (tramp-error | 615 (tramp-error |
616 v 'file-error "Cannot make local copy of file `%s'" filename)) | 616 v 'file-error "Cannot make local copy of file `%s'" filename)) |
617 tmpfile))) | 617 tmpfile))) |
618 | 618 |
619 ;; This function should return "foo/" for directories and "bar" for | 619 ;; This function should return "foo/" for directories and "bar" for |
856 (if tmpfile | 856 (if tmpfile |
857 ;; Remote filename. | 857 ;; Remote filename. |
858 (condition-case err | 858 (condition-case err |
859 (rename-file tmpfile newname ok-if-already-exists) | 859 (rename-file tmpfile newname ok-if-already-exists) |
860 ((error quit) | 860 ((error quit) |
861 (delete-file tmpfile) | 861 (tramp-compat-delete-file tmpfile 'force) |
862 (signal (car err) (cdr err)))) | 862 (signal (car err) (cdr err)))) |
863 | 863 |
864 ;; Remote newname. | 864 ;; Remote newname. |
865 (when (file-directory-p newname) | 865 (when (file-directory-p newname) |
866 (setq newname (expand-file-name | 866 (setq newname (expand-file-name |
879 v (format "put %s \"%s\"" filename (tramp-smb-get-localname v))) | 879 v (format "put %s \"%s\"" filename (tramp-smb-get-localname v))) |
880 (tramp-message | 880 (tramp-message |
881 v 0 "Copying file %s to file %s...done" filename newname) | 881 v 0 "Copying file %s to file %s...done" filename newname) |
882 (tramp-error v 'file-error "Cannot rename `%s'" filename))))) | 882 (tramp-error v 'file-error "Cannot rename `%s'" filename))))) |
883 | 883 |
884 (delete-file filename)) | 884 (tramp-compat-delete-file filename 'force)) |
885 | 885 |
886 (defun tramp-smb-handle-set-file-modes (filename mode) | 886 (defun tramp-smb-handle-set-file-modes (filename mode) |
887 "Like `set-file-modes' for Tramp files." | 887 "Like `set-file-modes' for Tramp files." |
888 (with-parsed-tramp-file-name filename nil | 888 (with-parsed-tramp-file-name filename nil |
889 (when (tramp-smb-get-cifs-capabilities v) | 889 (when (tramp-smb-get-cifs-capabilities v) |
943 (if (tramp-smb-send-command | 943 (if (tramp-smb-send-command |
944 v (format "put %s \"%s\"" tmpfile (tramp-smb-get-localname v))) | 944 v (format "put %s \"%s\"" tmpfile (tramp-smb-get-localname v))) |
945 (tramp-message | 945 (tramp-message |
946 v 5 "Writing tmp file %s to file %s...done" tmpfile filename) | 946 v 5 "Writing tmp file %s to file %s...done" tmpfile filename) |
947 (tramp-error v 'file-error "Cannot write `%s'" filename)) | 947 (tramp-error v 'file-error "Cannot write `%s'" filename)) |
948 (delete-file tmpfile)) | 948 (tramp-compat-delete-file tmpfile 'force)) |
949 | 949 |
950 (unless (equal curbuf (current-buffer)) | 950 (unless (equal curbuf (current-buffer)) |
951 (tramp-error | 951 (tramp-error |
952 v 'file-error | 952 v 'file-error |
953 "Buffer has changed from `%s' to `%s'" curbuf (current-buffer))) | 953 "Buffer has changed from `%s' to `%s'" curbuf (current-buffer))) |