[neomutt-devel] Huge code changes
rich at flatcap.org
Thu May 18 14:55:53 CEST 2017
For those of you not following GitHub's notifications...
I've just made a load more (sort of) big changes to the code.
If you have any problems with the build, please let me know ASAP.
## Death of typedefs
Following a discussion (#381: https://github.com/neomutt/neomutt/issues/381)
it was decided that typedefs should only be used for opaque data types.
Furthermore, the names of the structs should be unified.
Here's a sample:
Old typedef | New struct
POP_CACHE | struct PopCache
HASH | struct Hash
ENVELOPE | struct Envelope
smime_key_t | struct SmimeKey
QUERY | struct Query
MIXCHAIN | struct MixChain
## Split up mutt.h, protos.h
Many source files in mutt are HUGE.
Two of the worst offenders are mutt.h and protos.h
I've cut out 14 commonly used structs from mutt.h and put them in their
own header files. I've also moved the associated functions from proto.h
- address.h -- struct Address
- alias.h -- struct Alias
- body.h -- struct Body
- content.h -- struct Content
- context.h -- struct Context
- enter_state.h -- struct EnterState
- envelope.h -- struct Envelope
- format_flags.h -- enum MUTT_FORMAT used by mutt_FormatString
- header.h -- struct Header
- list.h -- struct List
- mbyte_table.h -- struct MbCharTable
- options.h -- enum of OPT*
- parameter.h -- struct Parameter
- pattern.h -- struct Pattern
- state.h -- struct State
- thread.h -- struct Thread
- where.h -- evil macro
This makes it easier to see the dependencies in the code.
## Move crypto source to /ncrypt
I've moved all the crypto code into a new dir: /ncrypt
The name is slight odd to avoid clashes with other libraries.
Think of it as a merging 'encrypt' and 'neomutt crypt'.
The move of 29 source files isn't quite as clean as I'd like.
The interface between mutt and the crypto code is very strange.
There are four possible ways of using the code:
with / without gpgme
with pgp / with smime
but the code combines pgp and smime into one Frankenstein interface.
Also the main body of code is littered with references to crypto which
means we need to compile some of it, even if it's not wanted.
If anyone wants a difficult pure coding challenge, let me know.
With all great refactoring changes comes the burden of rebasing all the
If your code's in the neomutt repo, you get a free pass.
I will rebase your code (unless you wish to do it yourself).
(This may take a few days).
Rich / FlatCap
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 819 bytes
Desc: not available
More information about the neomutt-devel