NeoMutt  2024-04-25-89-g194907
Teaching an old dog new tricks
No Matches
Code Docs


Each library helps to untangle the code by grouping similar functions and reducing dependencies.

The goal is that each library is:

  • Self-contained (it may rely on other libraries)
  • Independently testable (i.e. without using NeoMutt)
  • Fully documented
  • Robust

Libraries: Address, Alias, Attachments, Autocrypt, Body (Message) Cache, Mailbox Browser, Color, Auto-completion, Compressed Mailbox, Compose an Email, Compression functions, Config, Network connections, File Charset Conversion, Core NeoMutt objects, Edit a string, Email code, Envelope-editing Window, Parse Expando string, Graphical code, Email Header Cache, Help bar, History, Imap Mailbox, Index, Key mappings, Maildir Mailbox, Mh Mailbox, Mbox, Menu, Mixmaster, Mutt, Ncrypt, Nntp, Notmuch, Pager, Text parsing functions, Pattern, Pop, Postponed Emails, Progress Bar, Question, Send, Sidebar, Store.

Miscellaneous files

These file form the main body of NeoMutt.

File Description
alternates.c Alternate address handling
commands.c Functions to parse commands in a config file
copy.c Duplicate the structure of an entire email
editmsg.c Prepare an email to be edited
enriched.c Rich text handler
external.c Manage where the email is piped to external commands
flags.c Manipulate the flags in an email header
globals.c Global variables
handler.c Decide how to display email content
hdrline.c String processing routines to generate the mail index
help.c Generate the help-page and GUI display it
hook.c Parse and execute user-defined hooks
init.c Config/command parsing
mailcap.c RFC1524 Mailcap routines
maillist.c Handle mailing lists
main.c Command line processing
monitor.c Monitor files for changes
muttlib.c Some miscellaneous functions
mutt_account.c ConnAccount object used by POP and IMAP
mutt_body.c Representation of the body of an email
mutt_config.c Definitions of config variables
mutt_header.c Manipulate an email's header
mutt_logging.c NeoMutt Logging
mutt_lua.c Integrated Lua scripting
mutt_mailbox.c Mailbox helper functions
mutt_signal.c Signal handling
mutt_socket.c NeoMutt connections
mutt_thread.c Create/manipulate threading in emails
mview.c View of a Mailbox
mx.c Mailbox multiplexor
recvcmd.c Send/reply with an attachment
rfc3676.c RFC3676 Format Flowed routines
score.c Routines for adding user scores to emails
sort.c Assorted sorting methods
status.c GUI display a user-configurable status line
subjectrx.c Subject Regex handling
system.c Execute external programs
timegm.c For systems lacking timegm()
version.c Display version and copyright about NeoMutt
wcscasecmp.c For systems lacking wcscasecmp()

Building these Docs

The config for building the docs is in the main source repo.

Everything possible is turned on in the config file, so you'll need to install a few dependencies like dot from the graphviz package.

Installing the Docs

These docs aren't in the main website repo – they weigh in at 100MB. Instead, they're stored in the code repo