[notmuch] [PATCH 2/2] Save all attachments to a directory
Keith Amidon
keith at nicira.com
Sat Dec 5 14:54:00 PST 2009
Prompt for a directory and write all attachments of the current
message to that directory, prompting for a filename for each with a
default value of the filename specified in the attachment.
The behavior of this function differs in two ways from the existing
notmuch-show-save-attachments function:
1) It first prompts for the directory in which to save attachments
instead of assuming the current default directory.
2) If there is more than one attachment in the message, it assumes all
should be saved and only prompts for filenames instead of asking
first whether each attachment should be saved.
---
notmuch.el | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/notmuch.el b/notmuch.el
index 8d51709..08bd114 100644
--- a/notmuch.el
+++ b/notmuch.el
@@ -65,6 +65,7 @@
(define-key map "r" 'notmuch-show-reply)
(define-key map "|" 'notmuch-show-pipe-message)
(define-key map "w" 'notmuch-show-save-attachments)
+ (define-key map "W" 'notmuch-show-save-all-attachments)
(define-key map "V" 'notmuch-show-view-raw-message)
(define-key map "v" 'notmuch-show-view-all-mime-parts)
(define-key map "-" 'notmuch-show-remove-tag)
@@ -352,6 +353,17 @@ buffer."
mm-handle (> (notmuch-count-attachments mm-handle) 1))))
(message "Done"))
+(defun notmuch-show-save-all-attachments (directory)
+ "Save all attachments of a message to a directory."
+ (interactive "G")
+ (let ((dirname (file-name-as-directory directory)))
+ (make-directory dirname t)
+ (with-current-notmuch-show-message
+ (let ((mm-handle (mm-dissect-buffer))
+ (mm-default-directory dirname))
+ (notmuch-save-attachments mm-handle nil))))
+ (message "Done"))
+
(defun notmuch-reply (query-string)
(switch-to-buffer (generate-new-buffer "notmuch-draft"))
(call-process notmuch-command nil t nil "reply" query-string)
--
1.6.5.4
More information about the notmuch
mailing list