Mercurial > emacs
changeset 55992:b711ea364657
(dired-kill-tree): Do not kill DIRNAME, even if it does not end in a
slash. Add optional argument KILL-ROOT. Update docstring.
author | Luc Teirlinck <teirllm@auburn.edu> |
---|---|
date | Wed, 09 Jun 2004 00:25:30 +0000 |
parents | 60906ddcbf22 |
children | 7f35f020d8d8 |
files | lisp/dired-aux.el |
diffstat | 1 files changed, 12 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/dired-aux.el Tue Jun 08 21:38:29 2004 +0000 +++ b/lisp/dired-aux.el Wed Jun 09 00:25:30 2004 +0000 @@ -1852,19 +1852,23 @@ (> (dired-get-subdir-min elt1) (dired-get-subdir-min elt2))))))) -(defun dired-kill-tree (dirname &optional remember-marks) +(defun dired-kill-tree (dirname &optional remember-marks kill-root) "Kill all proper subdirs of DIRNAME, excluding DIRNAME itself. -With optional arg REMEMBER-MARKS, return an alist of marked files." - (interactive "DKill tree below directory: ") - (setq dirname (expand-file-name dirname)) +Interactively, you can kill DIRNAME as well by using a prefix argument. +In interactive use, the command prompts for DIRNAME. + +When called from Lisp, if REMEMBER-MARKS is non-nil, return an alist +of marked files. If KILL-ROOT is non-nil, kill DIRNAME as well." + (interactive "DKill tree below directory: \ni\nP") + (setq dirname (file-name-as-directory (expand-file-name dirname))) (let ((s-alist dired-subdir-alist) dir m-alist) (while s-alist (setq dir (car (car s-alist)) s-alist (cdr s-alist)) - (if (and (not (string-equal dir dirname)) - (dired-in-this-tree dir dirname) - (dired-goto-subdir dir)) - (setq m-alist (nconc (dired-kill-subdir remember-marks) m-alist)))) + (and (or kill-root (not (string-equal dir dirname))) + (dired-in-this-tree dir dirname) + (dired-goto-subdir dir) + (setq m-alist (nconc (dired-kill-subdir remember-marks) m-alist)))) m-alist)) (defun dired-insert-subdir-newpos (new-dir)