Re: [PATCH 2/2] emacs: show: allow user to insert rfc822 parts as messages
> >> + (let* ((folder >> + (read-from-minibuffer "Folder/tags to insert part to: " >> +notmuch-show-part-notmuch-insert-folder))) >> +(mm-with-unibyte-buffer >> + (mm-insert-part handle) >> + (notmuch-maildir-fcc-with-notmuch-insert folder nil "Folder/tags to >> insert part to") >> + (message nil > > Why this? It would be nice to have a comment explaining it. Assuming you mean the message nil bit, This is actually me being dim. I want to remove things like the retry message. But it would be much better to make the insert-part function return something saying whether it succeeded or not, and then give a useful message. Best wishes Mark ___ notmuch mailing list notmuch@notmuchmail.org https://notmuchmail.org/mailman/listinfo/notmuch
Re: [PATCH 2/2] emacs: show: allow user to insert rfc822 parts as messages
On Monday, 2017-08-28 at 08:32:22 +0100, Mark Walters wrote: > This adds a part-handler function that uses notmuch-insert to insert > an rfc822 part as a message in its own right. This allows the user to > reply directly to that message. > > We use notmuch-maildir-fcc-with-notmuch-insert as that has builtin > error handling/retry functionality, and it allows the user to specify > tags to identify the inserted message. > > The format of the folder/tags line is the same as for Fcc: headers > when using notmuch insert. > --- > emacs/notmuch-show.el | 35 +++ > 1 file changed, 35 insertions(+) > > diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el > index cd901e4..b3717d0 100644 > --- a/emacs/notmuch-show.el > +++ b/emacs/notmuch-show.el > @@ -143,6 +143,20 @@ indentation." >(const :tag "View interactively" > notmuch-show-interactively-view-part))) > > +(defcustom notmuch-show-part-notmuch-insert-folder "" > + "Default folder/tags to use when inserting rfc822 parts into the database. > + > +It should be of the form \"folder +tag1 -tag2\" where folder is See previous comments. > +the folder (relative to the notmuch mailstore) to store the > +message in, and tag1 and tag2 are tag changes to apply to the > +stored message. This string is split using > +`split-string-and-unquote', so a folder name containing spaces > +can be specified by quoting each space with an immediately > +preceding backslash or surrounding the entire folder name in > +double quotes." > + :group 'notmuch-show > + :type 'string) > + > (defcustom notmuch-show-only-matching-messages nil >"Only matching messages are shown by default." >:type 'boolean > @@ -1448,6 +1462,7 @@ reset based on the original query." > (define-key map "o" 'notmuch-show-interactively-view-part) > (define-key map "|" 'notmuch-show-pipe-part) > (define-key map "m" 'notmuch-show-choose-mime-of-part) > +(define-key map "i" 'notmuch-show-notmuch-insert-part) > (define-key map "?" 'notmuch-subkeymap-help) > map) >"Submap for part commands") > @@ -2463,6 +2478,26 @@ part to be treated as if it had that mime-type." >(interactive) >(notmuch-show-apply-to-current-part-handle #'mm-pipe-part)) > > +(defun notmuch-show--notmuch-insert-handle (handle) > + "Notmuch insert the part associated with HANDLE." > + ;; This is based on mm-pipe-part Missing a period. > + (let* ((folder > + (read-from-minibuffer "Folder/tags to insert part to: " > + notmuch-show-part-notmuch-insert-folder))) > +(mm-with-unibyte-buffer > + (mm-insert-part handle) > + (notmuch-maildir-fcc-with-notmuch-insert folder nil "Folder/tags to > insert part to") > + (message nil Why this? It would be nice to have a comment explaining it. > + > +(defun notmuch-show-notmuch-insert-part () > + "If the current part is rfc822 then insert into the mailstore" > + (interactive) > + (let* ((part (notmuch-show-get-part-properties)) > + (computed-type (plist-get part :computed-type))) > +(if (notmuch-match-content-type computed-type "message/rfc822") > + (notmuch-show-apply-to-current-part-handle > + #'notmuch-show--notmuch-insert-handle) > + (message "Not a message/rfc822 part." > > (defun notmuch-show--mm-display-part (handle) >"Use mm-display-part to display HANDLE in a new buffer. > -- > 2.1.4 > > ___ > notmuch mailing list > notmuch@notmuchmail.org > https://notmuchmail.org/mailman/listinfo/notmuch dme. -- All those lines and circles, to me, a mystery. ___ notmuch mailing list notmuch@notmuchmail.org https://notmuchmail.org/mailman/listinfo/notmuch
[PATCH 2/2] emacs: show: allow user to insert rfc822 parts as messages
This adds a part-handler function that uses notmuch-insert to insert an rfc822 part as a message in its own right. This allows the user to reply directly to that message. We use notmuch-maildir-fcc-with-notmuch-insert as that has builtin error handling/retry functionality, and it allows the user to specify tags to identify the inserted message. The format of the folder/tags line is the same as for Fcc: headers when using notmuch insert. --- emacs/notmuch-show.el | 35 +++ 1 file changed, 35 insertions(+) diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el index cd901e4..b3717d0 100644 --- a/emacs/notmuch-show.el +++ b/emacs/notmuch-show.el @@ -143,6 +143,20 @@ indentation." (const :tag "View interactively" notmuch-show-interactively-view-part))) +(defcustom notmuch-show-part-notmuch-insert-folder "" + "Default folder/tags to use when inserting rfc822 parts into the database. + +It should be of the form \"folder +tag1 -tag2\" where folder is +the folder (relative to the notmuch mailstore) to store the +message in, and tag1 and tag2 are tag changes to apply to the +stored message. This string is split using +`split-string-and-unquote', so a folder name containing spaces +can be specified by quoting each space with an immediately +preceding backslash or surrounding the entire folder name in +double quotes." + :group 'notmuch-show + :type 'string) + (defcustom notmuch-show-only-matching-messages nil "Only matching messages are shown by default." :type 'boolean @@ -1448,6 +1462,7 @@ reset based on the original query." (define-key map "o" 'notmuch-show-interactively-view-part) (define-key map "|" 'notmuch-show-pipe-part) (define-key map "m" 'notmuch-show-choose-mime-of-part) +(define-key map "i" 'notmuch-show-notmuch-insert-part) (define-key map "?" 'notmuch-subkeymap-help) map) "Submap for part commands") @@ -2463,6 +2478,26 @@ part to be treated as if it had that mime-type." (interactive) (notmuch-show-apply-to-current-part-handle #'mm-pipe-part)) +(defun notmuch-show--notmuch-insert-handle (handle) + "Notmuch insert the part associated with HANDLE." + ;; This is based on mm-pipe-part + (let* ((folder + (read-from-minibuffer "Folder/tags to insert part to: " + notmuch-show-part-notmuch-insert-folder))) +(mm-with-unibyte-buffer + (mm-insert-part handle) + (notmuch-maildir-fcc-with-notmuch-insert folder nil "Folder/tags to insert part to") + (message nil + +(defun notmuch-show-notmuch-insert-part () + "If the current part is rfc822 then insert into the mailstore" + (interactive) + (let* ((part (notmuch-show-get-part-properties)) +(computed-type (plist-get part :computed-type))) +(if (notmuch-match-content-type computed-type "message/rfc822") + (notmuch-show-apply-to-current-part-handle +#'notmuch-show--notmuch-insert-handle) + (message "Not a message/rfc822 part." (defun notmuch-show--mm-display-part (handle) "Use mm-display-part to display HANDLE in a new buffer. -- 2.1.4 ___ notmuch mailing list notmuch@notmuchmail.org https://notmuchmail.org/mailman/listinfo/notmuch