Mehdi Abaakouk [Tue, 8 Jan 2019 14:56:53 +0000 (15:56 +0100)]
Don't override ndata with temporary context
postponed/sendlib code can reopen an already opened mailbox.
This overrides m->ndata with a temporary context but never revert it back to
the previous one.
At first glance, when postponed/sendlib code open the mailbox they don't care
to have their context updated with the notification system. It should be
the Context used for the UI that should be updated instead.
So until we don't open a mailbox twice anymore, just set ndata when it
looks accurate to workaround the issue.
Pietro Cerutti [Tue, 8 Jan 2019 10:22:31 +0000 (10:22 +0000)]
Sort by UID so sequence ranges in UID STORE make sense
This fixes the use case where a bunch of messages are tagged, removed,
then the mailbox is sync'd in a thread view. In this case, the sequence
number given by email->index is not monotonic, which results in weird
sequence sets being passed to UID STORE.
Richard Russon [Mon, 7 Jan 2019 15:10:46 +0000 (15:10 +0000)]
merge: upstream changes
* Factor out rfc2047_decode_envelope()
* Parse and store mime headers in the BODY
* Add mx operation save_to_header_cache
* Add protected header received email support
* Add rfc2047_encode_envelope helper
* Refactor save_fcc() function
* Move fcc after send
* Prompt when mutt_write_fcc() fails
* Refactor postpone_message()
* When postponing, encode descriptions before encrypting
* More postpone cleanup
* Fix flags if mutt_get_postponed() has no messages
* Display mail sent message after Fcc finishes
* Handle improperly encoded pgp/mime octetstream part
* Add config and data structure for protected header write support
* Add a new mode for mutt_write_rfc822_header()
* Finish protected header write support
* Read in protected headers when resuming a postponed message
* Free pgpkeylist if the send fails
* Rfc2047 encode and fold X-Label when writing updates
* Restore the xlabel_changed reset
* Make a copy of x_label before encoding it for updates
* spelling consistency
* Updated French translation
* Added support for the "light" color prefix (in addition to "bright")
* Light colors: do not do the + 8 on negative values, such as COLOR_DEFAULT
* Create envelope->changed to mark all field changes
* Change x-label editing flag to be in the envelope
* Add $crypt_protected_headers_save
* Color protected subject as a header in the pager
* Respect ignore for the protected subject display
* fix config order
* Remove unused MUTT_FORMAT_MAKEPRINT flag
* Sleep $sleep_time after displaying "mail sent" message
* Update copyright for the next stable release
Kevin McCarthy [Thu, 27 Dec 2018 20:05:43 +0000 (12:05 -0800)]
Add $crypt_protected_headers_save
Setting this option will save the protected header back into the
clear-text message headers. This improves
usability (searching/limiting/replying) when reopening a mailbox
without header cache. However, it is a security trade-off, so
defaults off and strongly warns about what it is doing in the documentation.
Kevin McCarthy [Wed, 26 Dec 2018 03:52:53 +0000 (19:52 -0800)]
Change x-label editing flag to be in the envelope
Handle like In-Reply-To and References editing. Change the flag
setting to be inside mutt_copy_header().
The resetting of the changed flag occurs explicitly in the imap and
maildir/mh sync_mailbox code. It occurs for mbox in the
mx_update_tables() call in mx_sync_mailbox().
Kevin McCarthy [Wed, 26 Dec 2018 03:24:08 +0000 (19:24 -0800)]
Create envelope->changed to mark all field changes
In subsequent commits, we're going to add the x-label and subject
headers changed flags into the envelope. To avoid the list of checks
exploding everywhere, just use a single field to check and reset those
values.
Several places in the code are checking for a null header->env. I
wasn't aware this was possible, so I've added todo notes to track down
when this occurs.
Vincent Lefevre [Sat, 29 Dec 2018 18:37:57 +0000 (19:37 +0100)]
Added support for the "light" color prefix (in addition to "bright")
At the same time, restrict the advance by 8 to colors in the range 0-7
and no longer use the blink attribute to emulate light background colors
in some terminals (e.g. linux console and rxvt), as this is really blink
in other terminals (e.g. xterm); light background colors can still be
obtained by choosing a proper $TERM value (tested with linux console,
using TERM=linux-16color, and rxvt).
Kevin McCarthy [Fri, 28 Dec 2018 23:43:51 +0000 (15:43 -0800)]
Make a copy of x_label before encoding it for updates
This isn't actually a bug. Context->label_hash strdups the keys, so
we are safe from dangling references. However, the subj_hash uses
direct references, so to keep things consistent and safe, make a copy
and encode that.
Kevin McCarthy [Fri, 28 Dec 2018 00:24:27 +0000 (16:24 -0800)]
Restore the xlabel_changed reset
The cherry pick accidentally obliterated the reset. That flag is now
located in hdr->env->changed in the branch and is reset properly
elsewhere. Keep it in place in the stable branch.