From 58cff913fe7d7f38e9771c82730abb24dbaa2982 Mon Sep 17 00:00:00 2001 From: Thierry Volpiatto Date: Mon, 16 Aug 2021 13:29:07 +0200 Subject: [PATCH 1/2] Create numbered backup of attached file when already exists #2090 --- mu4e/mu4e-view-gnus.el | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/mu4e/mu4e-view-gnus.el b/mu4e/mu4e-view-gnus.el index 3901074d..eb04ae93 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")))) From 7929b9a852a0566afede8397dcc068203866f8db Mon Sep 17 00:00:00 2001 From: Thierry Volpiatto Date: Tue, 17 Aug 2021 16:11:21 +0200 Subject: [PATCH 2/2] Use and instead of progn and fix some long lines --- mu4e/mu4e-view-gnus.el | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/mu4e/mu4e-view-gnus.el b/mu4e/mu4e-view-gnus.el index eb04ae93..97ee9164 100644 --- a/mu4e/mu4e-view-gnus.el +++ b/mu4e/mu4e-view-gnus.el @@ -506,13 +506,14 @@ containing commas." 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)) + (let (newname (count 1)) + (while (and + (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)))))