Use recursive-trash feature for eshell deletion (Bug#7011).
authorLeo Liu <sdl.web@gmail.com>
Sun, 24 Oct 2010 17:24:24 +0000 (13:24 -0400)
committerChong Yidong <cyd@stupidchicken.com>
Sun, 24 Oct 2010 17:24:24 +0000 (13:24 -0400)
* lisp/eshell/em-unix.el (eshell-remove-entries): Use the TRASH
argument of delete-file and delete-directory (Bug#7011).

lisp/ChangeLog
lisp/eshell/em-unix.el

index 8e9400b..7d45513 100644 (file)
@@ -1,5 +1,11 @@
+2010-10-24  Leo <sdl.web@gmail.com>
+
+       * eshell/em-unix.el (eshell-remove-entries): Use the TRASH
+       argument of delete-file and delete-directory (Bug#7011).
+
 2010-10-24  Chong Yidong  <cyd@stupidchicken.com>
 
+
        * emacs-lisp/package.el (package-menu-mode-map): Inherit from
        button-buffer-map.
 
index 7d0ff22..365f765 100644 (file)
@@ -203,13 +203,7 @@ Otherwise, Emacs will attempt to use rsh to invoke du on the remote machine."
            (eshell-error "rm: cannot remove `.' or `..'\n"))
       (if (and (file-directory-p (car files))
               (not (file-symlink-p (car files))))
-         (let ((dir (file-name-as-directory (car files))))
-           (eshell-remove-entries dir
-                                  (mapcar
-                                   (function
-                                    (lambda (file)
-                                      (concat dir file)))
-                                   (directory-files dir)))
+         (progn
            (if verbose
                (eshell-printn (format "rm: removing directory `%s'"
                                       (car files))))
@@ -219,7 +213,7 @@ Otherwise, Emacs will attempt to use rsh to invoke du on the remote machine."
                         (not (y-or-n-p
                               (format "rm: remove directory `%s'? "
                                       (car files))))))
-             (eshell-funcalln 'delete-directory (car files))))
+             (eshell-funcalln 'delete-directory (car files) t t)))
        (if verbose
            (eshell-printn (format "rm: removing file `%s'"
                                   (car files))))
@@ -228,7 +222,7 @@ Otherwise, Emacs will attempt to use rsh to invoke du on the remote machine."
                         (not (y-or-n-p
                               (format "rm: remove `%s'? "
                                       (car files))))))
-         (eshell-funcalln 'delete-file (car files)))))
+         (eshell-funcalln 'delete-file (car files) t))))
     (setq files (cdr files))))
 
 (defun eshell/rm (&rest args)