summaryrefslogtreecommitdiff
path: root/lisp/net/tramp-smb.el
diff options
context:
space:
mode:
authorMichael Albinus <michael.albinus@gmx.de>2009-10-01 15:40:59 +0000
committerMichael Albinus <michael.albinus@gmx.de>2009-10-01 15:40:59 +0000
commitcc3dda16b935c45d482bb3a9797c70627ab17696 (patch)
treef02a083752f58e12920333782bbbe1be8a47bbe1 /lisp/net/tramp-smb.el
parent93776a8c4a41889218bba1e270504590f303a1d4 (diff)
downloademacs-cc3dda16b935c45d482bb3a9797c70627ab17696.tar.gz
* net/tramp-smb.el (tramp-smb-errors): Add error message for
connection timeout. (tramp-smb-handle-delete-directory): Handle optional parameter RECURSIVE.
Diffstat (limited to 'lisp/net/tramp-smb.el')
-rw-r--r--lisp/net/tramp-smb.el12
1 files changed, 11 insertions, 1 deletions
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index 549001db75a..54835efe226 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -87,6 +87,7 @@
"NT_STATUS_ACCOUNT_LOCKED_OUT"
"NT_STATUS_BAD_NETWORK_NAME"
"NT_STATUS_CANNOT_DELETE"
+ "NT_STATUS_CONNECTION_REFUSED"
"NT_STATUS_DIRECTORY_NOT_EMPTY"
"NT_STATUS_DUPLICATE_NAME"
"NT_STATUS_FILE_IS_A_DIRECTORY"
@@ -248,10 +249,19 @@ PRESERVE-UID-GID is completely ignored."
v 0 "Copying file %s to file %s...done" filename newname)
(tramp-error v 'file-error "Cannot copy `%s'" filename)))))))
-(defun tramp-smb-handle-delete-directory (directory)
+(defun tramp-smb-handle-delete-directory (directory &optional recursive)
"Like `delete-directory' for Tramp files."
(setq directory (directory-file-name (expand-file-name directory)))
(when (file-exists-p directory)
+ (if recursive
+ (mapc
+ (lambda (file)
+ (if (file-directory-p file)
+ (delete-directory file recursive)
+ (delete-file file)))
+ ;; We do not want to delete "." and "..".
+ (directory-files
+ directory 'full "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*")))
(with-parsed-tramp-file-name directory nil
;; We must also flush the cache of the directory, because
;; file-attributes reads the values from there.