Richard Russon [Sat, 31 Aug 2019 00:58:26 +0000 (01:58 +0100)]
merge: refactor Buffer handling
* Tidy some Buffer API, keep most buffers on the stack
* Keep spam member of struct Envelope by value
* Kill mutt_buffer_from
* Move buffer_new / buffer_free to static functions in pool.c
* Add mutt_buffer_make to create a Buffer on the stack
* Use mutt_buffer_is_empty instead of mutt_buffer_len where it makes sense
Richard Russon [Thu, 29 Aug 2019 13:12:16 +0000 (14:12 +0100)]
rename lists for consistency
- Move `entries` to end of the struct
- Separate declaration from use
- Rename `ColorLineHead` to `ColorLineList`
- Rename `LogList` to `LogLineList`
- Rename `MyVarHead` to `MyVarList`
- Rename `ObserverHead` to `ObserverList`
- Rename `PatternHead` to `PatternList`
- Rename `RegexListNode` to `RegexNode`
- Rename `ReplaceListNode` to `Replace`
- Rename `TagHead` to `TagList`
- Rename `TagNode` to `Tag`
- Rename `UrlQueryStringHead` to `UrlQueryList`
- Rename `UrlQueryString` to `UrlQuery`
Richard Russon [Thu, 22 Aug 2019 10:22:21 +0000 (11:22 +0100)]
check for empty Context
We'd already checked for an empty Context at the beginning of the `case`
statement, but we didn't check after any functions that might have
closed the Context.
This ensures using %W in index_format while having
header cache enabled works as expected.
Note that as we don't modify the header files that
hcachever.sh is looking for, but the serial_dump_envelope
and serial_restore_envelope functions instead, we have
to increment BASEVERSION to ensure that cache built with
previous versions gets invalidated in all cases.
Kevin McCarthy [Tue, 20 Aug 2019 22:17:31 +0000 (15:17 -0700)]
Update autocrypt keyring documentation
Recommend setting $autocrypt_dir to your normal keyring directory if
you want to use your existing key.
Trying to copy it over leads to signature verification issues. Even
if I reversed the order (which is much less clean), that would just
lead to missing key signature errors for Autocrypt messages instead.
Richard Russon [Mon, 19 Aug 2019 23:15:00 +0000 (00:15 +0100)]
merge: upstream autocrypt feature
* address: add mutt_addr_to_intl()
* build: add autocrypt option
* Initial autoconf and makefile setup for autocrypt
* Add autocrypt config vars
* Add database and schema initialization
* Start autocrypt gpgme
* Factor out mutt_edit_address() in send.c
* Add initial autocrypt account setup
* Add autocrypt header parsing to mutt_parse_rfc822_line()
* Process autocrypt headers
* Convert to use sqlite3_prepare_v3()
* Add gossip header processing
* Change autocrypt_db normalization to return struct Address
* Change gossip header address comparison to use normalized addresses
* Add another struct Email security bit for autocrypt
* Add autocrypt line to the compose menu
* Autocrypt outgoing emails
* Fix process_gossip_headers() to look at the right envelope
* Slightly improve the gossip header key update
* Handle autocrypt message decryption
* Print an error message if an autocrypt key can't be found
* Add autocrypt source files to POTFILES.in
* Add L10N translation message comments
* Add AUTOCRYPT header to imap fetch list
* Add prefer-encrypt prompt during account creation
* Add account->enabled checks
* Improve gen-map-doc work on multi-word maps
* Convert peer_update to just pass the peer object
* Basic autocrypt account menu
* Add more translation string comments for autocrypt
* Add option to scan mailboxes during first run
* Add documentation for the autocrypt feature
* Add autocrypt README file
* Don't try to decrypt autocrypt messages if the option is off
* fix test cases
* iwyu: tidy #includes
* rename local variable rv to rc
* doxy: add comment blocks
* rename local variable hdr to e
* rename local variable msg to e
* add braces to unclear 'if' statements
* explicitly check retval for strcmp, buffer_len
* add whitespace for clarity
* tidy code
* Add ability to create autocrypt account from an existing key
* Automatically clear screen when popping the last menu
* Add $autocrypt_reply
* Allow nested setting of OptIgnoreMacroEvents
* Turn off macro processing during autocrypt initialization
* Enabled writing protected subject with autocrypt too
* Minor autocrypt manual section updates
* Add autocrypt documentation about shared key and keyring strategies
* Add a note about autocrypt first-run and macros
* Add L10N comment about autocrypt menu help line abbreviations
* Mention base64 keydata being stored in the autocrypt database
Kevin McCarthy [Thu, 8 Aug 2019 01:34:58 +0000 (18:34 -0700)]
Turn off macro processing during autocrypt initialization
The muttrc can push events into the macro buffer, with the assumption
that mailbox will be opened next. This will interfere with the
prompts uses during first run. The only issue is that macros won't
work inside the folder browser, if invoked.
Kevin McCarthy [Thu, 8 Aug 2019 01:24:15 +0000 (18:24 -0700)]
Allow nested setting of OptIgnoreMacroEvents
This will be needed for the first-run of autocrypt initialization.
The initialization involves a number of prompts, and can even use the
folder browser. The browser could in turn connect to IMAP which might
invoke a certificate prompt, login prompt, etc.