Function: dired-clean-up-after-deletion

dired-clean-up-after-deletion is a byte-compiled function defined in dired.el.gz.

Signature

(dired-clean-up-after-deletion FN)

Documentation

Clean up after a deleted file or directory FN.

Removes any expanded subdirectory of deleted directory. If dired-x is loaded and dired-clean-up-buffers-too is non-nil, kill any buffers visiting those files, prompting for confirmation. To disable the confirmation, see dired-clean-confirm-killing-deleted-buffers.

Source Code

;; Defined in /usr/src/emacs/lisp/dired.el.gz
(defun dired-clean-up-after-deletion (fn)
  "Clean up after a deleted file or directory FN.
Removes any expanded subdirectory of deleted directory.  If
`dired-x' is loaded and `dired-clean-up-buffers-too' is non-nil,
kill any buffers visiting those files, prompting for
confirmation.  To disable the confirmation, see
`dired-clean-confirm-killing-deleted-buffers'."
  (save-excursion (and (cdr dired-subdir-alist)
		       (dired-goto-subdir fn)
		       (dired-kill-subdir)))
  ;; Offer to kill buffer of deleted file FN.
  (when (and (featurep 'dired-x) dired-clean-up-buffers-too)
    (let ((buf (get-file-buffer fn)))
      (and buf
           (or (and dired-clean-confirm-killing-deleted-buffers
                    (funcall #'y-or-n-p
                             (format "Kill buffer of %s, too? "
                                     (file-name-nondirectory fn))))
               (not dired-clean-confirm-killing-deleted-buffers))
           (kill-buffer buf)))
    (let ((buf-list (dired-buffers-for-dir-or-subdir
                     (expand-file-name fn))))
      (and buf-list
           (or (and dired-clean-confirm-killing-deleted-buffers
                    (y-or-n-p
                     (format
                      (ngettext
                       "Kill Dired buffer of %s, too? "
                       "Kill Dired buffers of %s and its sub-directories, too? "
                       (length buf-list))
                      (file-name-nondirectory
                       ;; FN may end in a / if `dired-listing-switches'
                       ;; contains -p, so we need to strip that
                       ;; (bug#48301).
                       (directory-file-name fn)))))
               (not dired-clean-confirm-killing-deleted-buffers))
           (dolist (buf buf-list)
             (kill-buffer buf))))))