(push header message-hidden-headers)))
notmuch-mua-hidden-headers))
+(defun notmuch-mua-reply-crypto (parts)
+ "Add mml sign-encrypt flag if any part of original message is encrypted."
+ (loop for part in parts
+ if (notmuch-match-content-type (plist-get part :content-type) "multipart/encrypted")
+ do (mml-secure-message-sign-encrypt)
+ else if (notmuch-match-content-type (plist-get part :content-type) "multipart/*")
+ do (notmuch-mua-reply-crypto (plist-get part :content))))
+
(defun notmuch-mua-get-quotable-parts (parts)
(loop for part in parts
if (notmuch-match-content-type (plist-get part :content-type) "multipart/alternative")
(defun notmuch-mua-reply (query-string &optional sender reply-all)
(let ((args '("reply" "--format=sexp" "--format-version=1"))
+ (process-crypto notmuch-show-process-crypto)
reply
original)
- (when notmuch-show-process-crypto
+ (when process-crypto
(setq args (append args '("--decrypt"))))
(if reply-all
(set-mark (point))
(goto-char start)
;; Quote the original message according to the user's configured style.
- (message-cite-original))))
+ (message-cite-original)))
- (goto-char (point-max))
+ ;; Crypto processing based crypto content of the original message
+ (when process-crypto
+ (notmuch-mua-reply-crypto (plist-get original :body))))
+
+ ;; Push mark right before signature, if any.
+ (message-goto-signature)
+ (unless (eobp)
+ (end-of-line -1))
(push-mark)
+
(message-goto-body)
(set-buffer-modified-p nil))
(ad-activate 'ido-completing-read)))
(defun notmuch-mua-prompt-for-sender ()
- (interactive)
- (let (name addresses one-name-only)
- ;; If notmuch-identities is non-nil, check if there is a fixed user name.
- (if notmuch-identities
- (let ((components (mapcar 'mail-extract-address-components notmuch-identities)))
- (setq name (caar components)
- addresses (mapcar 'cadr components)
- one-name-only (eval
- (cons 'and
- (mapcar (lambda (identity)
- (string-equal name (car identity)))
- components)))))
- ;; If notmuch-identities is nil, use values from the notmuch configuration file.
- (setq name (notmuch-user-name)
- addresses (cons (notmuch-user-primary-email) (notmuch-user-other-email))
- one-name-only t))
- ;; Now prompt the user, either for an email address only or for a full identity.
- (if one-name-only
- (let ((address
- (ido-completing-read (concat "Sender address for " name ": ") addresses
- nil nil nil 'notmuch-mua-sender-history (car addresses))))
- (concat name " <" address ">"))
- (ido-completing-read "Send mail From: " notmuch-identities
- nil nil nil 'notmuch-mua-sender-history (car notmuch-identities)))))
+ "Prompt for a sender from the user's configured identities."
+ (if notmuch-identities
+ (ido-completing-read "Send mail from: " notmuch-identities
+ nil nil nil 'notmuch-mua-sender-history
+ (car notmuch-identities))
+ (let* ((name (notmuch-user-name))
+ (addrs (cons (notmuch-user-primary-email)
+ (notmuch-user-other-email)))
+ (address
+ (ido-completing-read (concat "Sender address for " name ": ") addrs
+ nil nil nil 'notmuch-mua-sender-history
+ (car addrs))))
+ (concat name " <" address ">"))))
(put 'notmuch-mua-new-mail 'notmuch-prefix-doc "... and prompt for sender")
(defun notmuch-mua-new-mail (&optional prompt-for-sender)