notmuch/emacs
Austin Clements 1326ec09ee emacs: Build forwarded message buffer more directly
Previously, we used `message-forward' to build forwarded messages, but
this function is simply too high-level to be a good fit for some of
what we do.

First, since `message-forward' builds a full forward message buffer
given the message to forward, we have to duplicate much of the logic
in `notmuch-mua-mail' to patch the notmuch-y things into the built
buffer.

Second, `message-forward' constructs the From header from
user-full-name and user-mail-address.  As a result, if we prompt the
user for an identity, we have to parse it into name and address
components, just to have it put back together by `message-forward'.
This process is not entirely loss-less because
`mail-extract-address-components' does a lot of canonicalization
(since it's intended for displaying addresses, not for parsing them).

To fix these problems, don't use `message-forward' at all.
`message-forward' itself is basically just a call to `message-mail'
and `message-forward-make-body'.  Do this ourselves, but call
`notmuch-mua-mail' instead of `message-mail' so we can directly build
a notmuch-y message and control the From header.

This also fixes a bug that was a direct consequence of our use of
`mail-extract-address-components': if the user chose an identity that
had no name part (or the name part matched the mailbox), we would bind
user-full-name to nil, which would cause an exception in the bowels of
message-mode because user-full-name is expected to always be a string
(even if it's just "").
2014-02-22 19:50:55 -04:00
..
.gitignore emacs: update .gitignore 2013-06-02 20:44:26 -03:00
coolj.el emacs: Add more functions to clean up text/plain parts 2010-04-26 10:05:46 -07:00
make-deps.el emacs: Compute build dependencies to fix byte compile issues 2013-05-23 08:06:12 -03:00
Makefile fix sum moar typos [build scripts, Makefiles] 2011-06-23 15:44:59 -07:00
Makefile.local emacs: Avoid rebuilding .eldeps even when there's nothing to do 2014-02-21 21:07:23 -04:00
notmuch-address.el emacs/notmuch-address.el: add notmuch-address-selection-function 2013-05-13 21:05:29 -03:00
notmuch-crypto.el emacs: show: make buttons select window 2013-02-18 20:13:19 -04:00
notmuch-hello.el emacs: add notmuch-assert-cli-sane to notmuch-hello 2014-01-26 15:10:30 -04:00
notmuch-lib.el emacs: ad-activate 'mm-shr after ad-disable-advice 'mm-shr 2014-01-30 12:21:25 -04:00
notmuch-logo.png emacs: Add notmuch-hello.el, a friendly frontend to notmuch 2010-04-23 12:50:18 -07:00
notmuch-maildir-fcc.el emacs: derive correct timestamp in FCC unique name 2012-06-22 07:39:21 -03:00
notmuch-message.el emacs: replace (funcall 'foo ...) with (foo ...) 2013-06-02 11:37:22 -03:00
notmuch-mua.el emacs: Build forwarded message buffer more directly 2014-02-22 19:50:55 -04:00
notmuch-parser.el emacs: Streaming S-expression parser 2013-06-01 08:56:25 -03:00
notmuch-print.el emacs: Put notmuch-print-mechanism in custom group notmuch-show 2012-04-24 23:25:51 -03:00
notmuch-query.el emacs: dropped rest of now-unused JSON functionality 2013-07-20 09:13:48 -03:00
notmuch-show.el emacs: update alist for mail-archive.com API change 2014-02-16 18:55:24 -04:00
notmuch-tag.el emacs: tree: use tag-format-tags 2014-01-18 14:41:50 -04:00
notmuch-tree.el emacs: tree: use tag-format-tags 2014-01-18 14:41:50 -04:00
notmuch-wash.el emacs: Retain text properties when toggling buttons 2013-05-31 22:00:44 -03:00
notmuch.el emacs: add '?' to some prefix keymaps to describe its bindings 2013-12-10 03:52:54 +08:00