diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2021-10-03 11:28:27 +0200 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2021-10-03 11:28:34 +0200 |
commit | b47d7ce1b87ee8bbbb04ce2b784af57ece17177f (patch) | |
tree | 1967313786eb55e1d7fcfc2ee8596ddb1ce33a91 /lisp/gnus | |
parent | b1a8a66fb0f28cba607831862fa673666a47bb2c (diff) | |
download | emacs-b47d7ce1b87ee8bbbb04ce2b784af57ece17177f.tar.gz emacs-b47d7ce1b87ee8bbbb04ce2b784af57ece17177f.tar.bz2 emacs-b47d7ce1b87ee8bbbb04ce2b784af57ece17177f.zip |
Fix agent directory deletion
* lisp/gnus/gnus-agent.el (gnus-agent-expire-unagentized-dirs):
Delete directories in a simpler way that actually works (bug#50986).
Diffstat (limited to 'lisp/gnus')
-rw-r--r-- | lisp/gnus/gnus-agent.el | 31 |
1 files changed, 6 insertions, 25 deletions
diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el index 19d05120045..6426d825465 100644 --- a/lisp/gnus/gnus-agent.el +++ b/lisp/gnus/gnus-agent.el @@ -3553,32 +3553,13 @@ articles in every agentized group? ")) (when (and to-remove (or gnus-expert-user (gnus-y-or-n-p - "gnus-agent-expire has identified local directories that are\ - not currently required by any agentized group. Do you wish to consider\ - deleting them?"))) - (while to-remove - (let ((dir (pop to-remove))) - (if (or gnus-expert-user + "gnus-agent-expire has identified local directories that are +not currently required by any agentized group. Do you wish to consider +deleting them?"))) + (dolist (dir to-remove) + (when (or gnus-expert-user (gnus-y-or-n-p (format "Delete %s? " dir))) - (let* (delete-recursive - files f - (delete-recursive - (lambda (f-or-d) - (ignore-errors - (if (file-directory-p f-or-d) - (condition-case nil - (delete-directory f-or-d) - (file-error - (setq files (directory-files f-or-d)) - (while files - (setq f (pop files)) - (or (member f '("." "..")) - (funcall delete-recursive - (nnheader-concat - f-or-d f)))) - (delete-directory f-or-d))) - (delete-file f-or-d)))))) - (funcall delete-recursive dir))))))))) + (delete-directory dir t))))))) ;;;###autoload (defun gnus-agent-batch () |