1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-20 10:23:57 +00:00

* net/tramp-compat.el (tramp-compat-delete-directory): Implement

TRASH argument.
This commit is contained in:
Michael Albinus 2013-03-05 16:55:53 +01:00
parent 2054a6c311
commit 11f4d68f25
2 changed files with 28 additions and 18 deletions

View 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).

View 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.