mirror of
https://git.notmuchmail.org/git/notmuch
synced 2025-03-13 19:15:15 +01:00
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 ""). |
||
---|---|---|
.. | ||
.gitignore | ||
coolj.el | ||
make-deps.el | ||
Makefile | ||
Makefile.local | ||
notmuch-address.el | ||
notmuch-crypto.el | ||
notmuch-hello.el | ||
notmuch-lib.el | ||
notmuch-logo.png | ||
notmuch-maildir-fcc.el | ||
notmuch-message.el | ||
notmuch-mua.el | ||
notmuch-parser.el | ||
notmuch-print.el | ||
notmuch-query.el | ||
notmuch-show.el | ||
notmuch-tag.el | ||
notmuch-tree.el | ||
notmuch-wash.el | ||
notmuch.el |