]> git.eshelyaron.com Git - emacs.git/commitdiff
Make 'move-file-to-trash' behave according to the documentation
authorEli Zaretskii <eliz@gnu.org>
Sat, 10 Nov 2018 20:14:42 +0000 (22:14 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 10 Nov 2018 20:14:42 +0000 (22:14 +0200)
* lisp/files.el (move-file-to-trash): Behave like the doc
string says: check whether 'system-move-file-to-trash' is
defined before testing that 'trash-directory' is non-nil.
(Bug#33335)

lisp/files.el

index ad032832ec5e1a969a1e695fa106d806e75db38a..0f0c7d1559a2c7a324e909874f44b7357192c016 100644 (file)
@@ -7393,7 +7393,10 @@ Otherwise, trash FILENAME using the freedesktop.org conventions,
  like the GNOME, KDE and XFCE desktop environments.  Emacs only
  moves files to \"home trash\", ignoring per-volume trashcans."
   (interactive "fMove file to trash: ")
-  (cond (trash-directory
+  ;; If `system-move-file-to-trash' is defined, use it.
+  (cond ((fboundp 'system-move-file-to-trash)
+        (system-move-file-to-trash filename))
+        (trash-directory
         ;; If `trash-directory' is non-nil, move the file there.
         (let* ((trash-dir   (expand-file-name trash-directory))
                (fn          (directory-file-name (expand-file-name filename)))
@@ -7412,9 +7415,6 @@ Otherwise, trash FILENAME using the freedesktop.org conventions,
                 (setq new-fn (car (find-backup-file-name new-fn)))))
           (let (delete-by-moving-to-trash)
             (rename-file fn new-fn))))
-       ;; If `system-move-file-to-trash' is defined, use it.
-       ((fboundp 'system-move-file-to-trash)
-        (system-move-file-to-trash filename))
        ;; Otherwise, use the freedesktop.org method, as specified at
        ;; http://freedesktop.org/wiki/Specifications/trash-spec
        (t