X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=emacs%2Fnotmuch-draft.el;h=283830ad0d0097c2aa529cc754ea41cd90002281;hp=fb7f4f55ed572d5d37d4e1e17f666493f6a25422;hb=88ae4f02511c4dd61ea90b28794f469819d543be;hpb=045f0e455ac94e2393d0d729c9bbdf3459a4860f diff --git a/emacs/notmuch-draft.el b/emacs/notmuch-draft.el index fb7f4f55..283830ad 100644 --- a/emacs/notmuch-draft.el +++ b/emacs/notmuch-draft.el @@ -2,6 +2,7 @@ ;; ;; Copyright © Mark Walters ;; Copyright © David Bremner +;; Copyright © Leo Gaspard ;; ;; This file is part of Notmuch. ;; @@ -20,6 +21,7 @@ ;; ;; Authors: Mark Walters ;; David Bremner +;; Leo Gaspard ;;; Code: @@ -74,7 +76,7 @@ postponing and resuming a message." (defcustom notmuch-draft-save-plaintext 'ask "Should notmuch save/postpone in plaintext messages that seem - like they are intended to be sent encrypted +like they are intended to be sent encrypted (i.e with an mml encryption tag in it)." :type '(radio (const :tag "Never" nil) @@ -85,10 +87,10 @@ postponing and resuming a message." (defvar notmuch-draft-encryption-tag-regex "<#\\(part encrypt\\|secure.*mode=.*encrypt>\\)" - "Regular expression matching mml tags indicating encryption of part or message") + "Regular expression matching mml tags indicating encryption of part or message.") (defvar notmuch-draft-id nil - "Message-id of the most recent saved draft of this message") + "Message-id of the most recent saved draft of this message.") (make-variable-buffer-local 'notmuch-draft-id) (defun notmuch-draft--mark-deleted () @@ -150,16 +152,18 @@ Used when a new version is saved, or the message is sent." "Checks if we should save a message that should be encrypted. `notmuch-draft-save-plaintext' controls the behaviour." - (case notmuch-draft-save-plaintext - ((ask) - (unless (yes-or-no-p "(Customize `notmuch-draft-save-plaintext' to avoid this warning) + (cl-case notmuch-draft-save-plaintext + ((ask) + (unless (yes-or-no-p + "(Customize `notmuch-draft-save-plaintext' to avoid this warning) This message contains mml tags that suggest it is intended to be encrypted. Really save and index an unencrypted copy? ") - (error "Save aborted"))) - ((nil) - (error "Refusing to save draft with encryption tags (see `notmuch-draft-save-plaintext')")) - ((t) - (ignore)))) + (error "Save aborted"))) + ((nil) + (error "Refusing to save draft with encryption tags (see `%s')" + 'notmuch-draft-save-plaintext)) + ((t) + (ignore)))) (defun notmuch-draft--make-message-id () ;; message-make-message-id gives the id inside a "<" ">" pair, @@ -190,14 +194,16 @@ applied to newly inserted messages)." (message-remove-header "Message-ID") (message-add-header (concat "Message-ID: <" id ">"))) (t - (message "You have customized emacs so Message-ID is not a deletable header, so not changing it") + (message "You have customized emacs so Message-ID is not a %s" + "deletable header, so not changing it") (setq id nil))) (cond ((member 'Date message-deletable-headers) (message-remove-header "Date") (message-add-header (concat "Date: " (message-make-date)))) (t - (message "You have customized emacs so Date is not a deletable header, so not changing it"))) + (message "You have customized emacs so Date is not a deletable %s" + "header, so not changing it"))) (message-add-header "X-Notmuch-Emacs-Draft: True") (notmuch-draft-quote-some-mml) (notmuch-maildir-setup-message-for-saving) @@ -225,8 +231,9 @@ applied to newly inserted messages)." "--exclude=false" id)) (draft (equal tags (notmuch-update-tags tags notmuch-draft-tags)))) (when (or draft - (yes-or-no-p "Message does not appear to be a draft: really resume? ")) - (switch-to-buffer (get-buffer-create (concat "*notmuch-draft-" id "*"))) + (yes-or-no-p "Message does not appear to be a draft: edit as new? ")) + (pop-to-buffer-same-window + (get-buffer-create (concat "*notmuch-draft-" id "*"))) (setq buffer-read-only nil) (erase-buffer) (let ((coding-system-for-read 'no-conversion)) @@ -244,6 +251,7 @@ applied to newly inserted messages)." (message-remove-header "Message-ID")) (when (member 'Date message-deletable-headers) (message-remove-header "Date")) + (unless draft (notmuch-fcc-header-setup)) ;; The X-Notmuch-Emacs-Draft header is a more reliable ;; indication of whether the message really is a draft. (setq draft (> (message-remove-header "X-Notmuch-Emacs-Draft") 0))) @@ -256,7 +264,7 @@ applied to newly inserted messages)." ;; If the resumed message was a draft then set the draft ;; message-id so that we can delete the current saved draft if the ;; message is resaved or sent. - (setq notmuch-draft-id (when draft id))))) + (setq notmuch-draft-id (and draft id))))) (add-hook 'message-send-hook 'notmuch-draft--mark-deleted)