On Fri, 02 Jan 2015, David Edmondson <dme@dme.org> wrote: > On Thu, Jan 01 2015, Jani Nikula wrote: >> Stash From/To/Cc as --to/--to/--cc, respectively, and Message-Id as >> --in-reply-to, suitable for pasting to git send-email command line. >> --- >> emacs/notmuch-show.el | 38 ++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 38 insertions(+) >> >> diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el >> index b8cfbb8a3286..887d877672fc 100644 >> --- a/emacs/notmuch-show.el >> +++ b/emacs/notmuch-show.el >> @@ -1280,6 +1280,7 @@ reset based on the original query." >> (define-key map "t" 'notmuch-show-stash-to) >> (define-key map "l" 'notmuch-show-stash-mlarchive-link) >> (define-key map "L" 'notmuch-show-stash-mlarchive-link-and-go) >> + (define-key map "G" 'notmuch-show-stash-git-send-email) >> (define-key map "?" 'notmuch-subkeymap-help) >> map) >> "Submap for stash commands") >> @@ -2131,6 +2132,43 @@ the user (see `notmuch-show-stash-mlarchive-link-alist')." >> (notmuch-show-stash-mlarchive-link mla) >> (browse-url (current-kill 0 t))) >> >> +(defun notmuch-show-stash-git-helper (addresses prefix) >> + "Escape, trim, quote, and add PREFIX to each address in list of >> ADDRESSES." > > "...and return the result as a single string." > >> + (mapconcat (lambda (x) >> + (concat prefix "\"" >> + ;; escape double-quotes >> + (replace-regexp-in-string >> + "\"" "\\\\\"" >> + ;; trim leading and trailing spaces >> + (replace-regexp-in-string >> + "\\(^ *\\| *$\\)" "" >> + x)) "\"")) >> + addresses " ")) >> + >> +(put 'notmuch-show-stash-git-send-email 'notmuch-prefix-doc >> + "Copy From/To/Cc of current message to kill-ring in a form suitable for pasting to git send-email command line.") >> + >> +(defun notmuch-show-stash-git-send-email (&optional no-in-reply-to) >> + "Copy From/To/Cc/Message-Id of current message to kill-ring in a form suitable for pasting to git send-email command line. >> + >> +If invoked with a prefix argument (or NO-IN-REPLY-TO is non-nil, >> +omit --in-reply-to=<Message-Id>." > > Missing ")" after "non-nil". > >> + (interactive "P") >> + (notmuch-common-do-stash >> + (mapconcat 'identity >> + (remove "" >> + (list >> + (notmuch-show-stash-git-helper >> + (message-tokenize-header (notmuch-show-get-from)) "--to=") >> + (notmuch-show-stash-git-helper >> + (message-tokenize-header (notmuch-show-get-to)) "--to=") >> + (notmuch-show-stash-git-helper >> + (message-tokenize-header (notmuch-show-get-cc)) "--cc=") >> + (unless no-in-reply-to >> + (notmuch-show-stash-git-helper >> + (list (notmuch-show-get-message-id t)) >> "--in-reply-to=")))) > > This will still generate a trailing space if `no-in-reply-to' is set, > but I think that we can live with it. I know I can! ;) Thanks for the review, v3 in reply. BR, Jani. > >> + " "))) >> + >> ;; Interactive part functions and their helpers >> >> (defun notmuch-show-generate-part-buffer (message-id nth) >> -- >> 2.1.4