]> git.eshelyaron.com Git - emacs.git/commitdiff
* net/tramp-compat.el (tramp-compat-delete-directory): Implement
authorMichael Albinus <michael.albinus@gmx.de>
Tue, 5 Mar 2013 15:55:53 +0000 (16:55 +0100)
committerMichael Albinus <michael.albinus@gmx.de>
Tue, 5 Mar 2013 15:55:53 +0000 (16:55 +0100)
TRASH argument.

lisp/ChangeLog
lisp/net/tramp-compat.el

index 8feb3df5cdde5699b7ec4d0fb1ef8f1261bdf8d2..ac56cd8ba798ae3c21304cf27ac0904938486c59 100644 (file)
@@ -1,3 +1,8 @@
+2013-03-05  Michael Albinus  <michael.albinus@gmx.de>
+
+       * net/tramp-compat.el (tramp-compat-delete-directory): Implement
+       TRASH argument.
+
 2013-03-05  Dmitry Gutov  <dgutov@yandex.ru>
 
        Keep pre-existing highlighting in completion candidates (Bug#13250).
index 81c4d5ccced9138a1784dd9a2e8b8e8a187ae397..d4639817b1867c2ba17a9bde031ffcf2445751e4 100644 (file)
@@ -384,25 +384,30 @@ Not actually used.  Use `(format \"%o\" i)' instead?"
                 trash)))
        (delete-file filename)))))
 
-;; RECURSIVE has been introduced with Emacs 23.2.
-(defun tramp-compat-delete-directory (directory &optional recursive)
+;; RECURSIVE has been introduced with Emacs 23.2.  TRASH has been
+;; introduced with Emacs 24.1.
+(defun tramp-compat-delete-directory (directory &optional recursive trash)
   "Like `delete-directory' for Tramp files (compat function)."
-  (if (null recursive)
-      (delete-directory directory)
-    (condition-case nil
-       (tramp-compat-funcall 'delete-directory directory recursive)
-      ;; This Emacs version does not support the RECURSIVE flag.  We
-      ;; use the implementation from Emacs 23.2.
-      (wrong-number-of-arguments
-       (setq directory (directory-file-name (expand-file-name directory)))
-       (if (not (file-symlink-p directory))
-          (mapc (lambda (file)
-                  (if (eq t (car (file-attributes file)))
-                      (tramp-compat-delete-directory file recursive)
-                    (delete-file file)))
-                (directory-files
-                 directory 'full "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*")))
-       (delete-directory directory)))))
+  (condition-case nil
+      (cond
+       (trash
+       (tramp-compat-funcall 'delete-directory directory recursive trash))
+       (recursive
+       (tramp-compat-funcall 'delete-directory directory recursive))
+       (t
+       (delete-directory directory)))
+    ;; This Emacs version does not support the RECURSIVE or TRASH flag.  We
+    ;; use the implementation from Emacs 23.2.
+    (wrong-number-of-arguments
+     (setq directory (directory-file-name (expand-file-name directory)))
+     (if (not (file-symlink-p directory))
+        (mapc (lambda (file)
+                (if (eq t (car (file-attributes file)))
+                    (tramp-compat-delete-directory file recursive trash)
+                  (tramp-compat-delete-file file trash)))
+              (directory-files
+               directory 'full "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*")))
+     (delete-directory directory))))
 
 ;; `number-sequence' does not exist in XEmacs.  Implementation is
 ;; taken from Emacs 23.