summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThierry Volpiatto <thievol@posteo.net>2021-08-16 13:29:07 +0200
committerThierry Volpiatto <thievol@posteo.net>2021-08-16 13:29:07 +0200
commit58cff913fe7d7f38e9771c82730abb24dbaa2982 (patch)
tree77e7952abc81ea9b5f0109f416748220586bfb4a
parentd6658c49b83b5e525f3b33bde09fd245870025fd (diff)
Create numbered backup of attached file when already exists #2090
-rw-r--r--mu4e/mu4e-view-gnus.el14
1 files changed, 13 insertions, 1 deletions
diff --git a/mu4e/mu4e-view-gnus.el b/mu4e/mu4e-view-gnus.el
index 3901074..eb04ae9 100644
--- a/mu4e/mu4e-view-gnus.el
+++ b/mu4e/mu4e-view-gnus.el
@@ -503,7 +503,19 @@ containing commas."
dir (if arg (read-directory-name "Save to directory: ") mu4e-attachment-dir))
(cl-loop for (f . h) in handles
when (member f files)
- do (mm-save-part-to-file h (expand-file-name f dir))))
+ do (mm-save-part-to-file
+ h (let ((file (expand-file-name f dir)))
+ (if (file-exists-p file)
+ (let (newname
+ (count 1))
+ (while (progn
+ (setq newname (concat (file-name-sans-extension file)
+ (format "(%s)" count)
+ (file-name-extension file t)))
+ (file-exists-p newname))
+ (cl-incf count))
+ newname)
+ file)))))
(mu4e-message "No attached files found"))))