NeoMutt  2025-12-11-1009-ga75d9e
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
body.c File Reference
#include "config.h"
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include "mutt/lib.h"
#include "config/lib.h"
#include "email/lib.h"
#include "core/lib.h"
#include "mutt.h"
Include dependency graph for body.c:

Go to the source code of this file.

Functions

int mutt_body_handler (struct Body *b, struct State *state)
 Handler for the Body of an email.
int LLVMFuzzerTestOneInput (const uint8_t *data, size_t size)

Variables

bool StartupComplete = true
const struct Module ModuleMain
 Module for the Main library.
const struct Module ModuleAddress
 Module for the Address library.
const struct Module ModuleAlias
 Module for the Alias library.
const struct Module ModuleAttach
 Module for the Attach library.
const struct Module ModuleAutocrypt
 Module for the Autocrypt library.
const struct Module ModuleBcache
 Module for the Bcache library.
const struct Module ModuleBrowser
 Module for the Browser library.
const struct Module ModuleColor
 Module for the Color library.
const struct Module ModuleCommands
 Module for the Commands library.
const struct Module ModuleComplete
 Module for the Complete library.
const struct Module ModuleCompmbox
 Module for the Compmbox library.
const struct Module ModuleCompose
 Module for the Compose library.
const struct Module ModuleCompress
 Module for the Compress library.
const struct Module ModuleConfig
 Module for the Config library.
const struct Module ModuleConn
 Module for the Conn library.
const struct Module ModuleConvert
 Module for the Convert library.
const struct Module ModuleCore
 Module for the Core library.
const struct Module ModuleEditor
 Module for the Editor library.
const struct Module ModuleEmail
 Module for the Email library.
const struct Module ModuleEnvelope
 Module for the Envelope library.
const struct Module ModuleExpando
 Module for the Expando library.
const struct Module ModuleGui
 Module for the Gui library.
const struct Module ModuleHcache
 Module for the Hcache library.
const struct Module ModuleHelpbar
 Module for the Helpbar library.
const struct Module ModuleHistory
 Module for the History library.
const struct Module ModuleHooks
 Module for the Hooks library.
const struct Module ModuleImap
 Module for the Imap library.
const struct Module ModuleIndex
 Module for the Index library.
const struct Module ModuleKey
 Module for the Key library.
const struct Module ModuleLua
 Module for the Lua library.
const struct Module ModuleMaildir
 Module for the Maildir library.
const struct Module ModuleMbox
 Module for the Mbox library.
const struct Module ModuleMenu
 Module for the Menu library.
const struct Module ModuleMh
 Module for the Mh library.
const struct Module ModuleMutt
 Module for the Mutt library.
const struct Module ModuleNcrypt
 Module for the Ncrypt library.
const struct Module ModuleNntp
 Module for the Nntp library.
const struct Module ModuleNotmuch
 Module for the Notmuch library.
const struct Module ModulePager
 Module for the Pager library.
const struct Module ModuleParse
 Module for the Parse library.
const struct Module ModulePattern
 Module for the Pattern library.
const struct Module ModulePop
 Module for the Pop library.
const struct Module ModulePostpone
 Module for the Postpone library.
const struct Module ModuleProgress
 Module for the Progress library.
const struct Module ModuleQuestion
 Module for the Question library.
const struct Module ModuleSend
 Module for the Send library.
const struct Module ModuleSidebar
 Module for the Sidebar library.
const struct Module ModuleStore
 Module for the Store library.
static const struct ModuleModules []

Function Documentation

◆ mutt_body_handler()

int mutt_body_handler ( struct Body * b,
struct State * state )
extern

Handler for the Body of an email.

Parameters
bBody of the email
stateState to work with
Return values
0Success
-1Error

Definition at line 1668 of file handler.c.

1669{
1670 if (!b || !state)
1671 return -1;
1672
1673 bool plaintext = false;
1674 handler_t handler = NULL;
1675 handler_t encrypted_handler = NULL;
1676 int rc = 0;
1677 static unsigned short recurse_level = 0;
1678
1679 const int oflags = state->flags;
1680 const bool is_attachment_display = (oflags & STATE_DISPLAY_ATTACH);
1681
1682 if (recurse_level >= MUTT_MIME_MAX_DEPTH)
1683 {
1684 mutt_debug(LL_DEBUG1, "recurse level too deep. giving up\n");
1685 return 1;
1686 }
1687 recurse_level++;
1688
1689 /* first determine which handler to use to process this part */
1690
1691 if (is_autoview(b))
1692 {
1693 handler = autoview_handler;
1694 state->flags &= ~STATE_CHARCONV;
1695 }
1696 else if (b->type == TYPE_TEXT)
1697 {
1698 if (mutt_istr_equal("plain", b->subtype))
1699 {
1700 const bool c_reflow_text = cs_subset_bool(NeoMutt->sub, "reflow_text");
1701 /* avoid copying this part twice since removing the transfer-encoding is
1702 * the only operation needed. */
1704 {
1705 encrypted_handler = crypt_pgp_application_handler;
1706 handler = encrypted_handler;
1707 }
1708 else if (c_reflow_text &&
1709 mutt_istr_equal("flowed", mutt_param_get(&b->parameter, "format")))
1710 {
1711 handler = rfc3676_handler;
1712 }
1713 else
1714 {
1715 handler = text_plain_handler;
1716 }
1717 }
1718 else if (mutt_istr_equal("enriched", b->subtype))
1719 {
1720 handler = text_enriched_handler;
1721 }
1722 else /* text body type without a handler */
1723 {
1724 plaintext = false;
1725 }
1726 }
1727 else if (b->type == TYPE_MESSAGE)
1728 {
1729 if (mutt_is_message_type(b->type, b->subtype))
1730 handler = message_handler;
1731 else if (mutt_istr_equal("delivery-status", b->subtype))
1732 plaintext = true;
1733 else if (mutt_istr_equal("external-body", b->subtype))
1734 handler = external_body_handler;
1735 }
1736 else if (b->type == TYPE_MULTIPART)
1737 {
1738 const char *const c_show_multipart_alternative = cs_subset_string(NeoMutt->sub, "show_multipart_alternative");
1739 if (!mutt_str_equal("inline", c_show_multipart_alternative) &&
1740 mutt_istr_equal("alternative", b->subtype))
1741 {
1742 handler = alternative_handler;
1743 }
1744 else if (!mutt_str_equal("inline", c_show_multipart_alternative) &&
1745 mutt_istr_equal("multilingual", b->subtype))
1746 {
1747 handler = multilingual_handler;
1748 }
1749 else if ((WithCrypto != 0) && mutt_istr_equal("signed", b->subtype))
1750 {
1751 if (!mutt_param_get(&b->parameter, "protocol"))
1752 mutt_error(_("Error: multipart/signed has no protocol"));
1753 else if (state->flags & STATE_VERIFY)
1754 handler = mutt_signed_handler;
1755 }
1757 {
1758 encrypted_handler = valid_pgp_encrypted_handler;
1759 handler = encrypted_handler;
1760 }
1762 {
1763 encrypted_handler = malformed_pgp_encrypted_handler;
1764 handler = encrypted_handler;
1765 }
1766
1767 if (!handler)
1768 handler = multipart_handler;
1769
1770 if ((b->encoding != ENC_7BIT) && (b->encoding != ENC_8BIT) && (b->encoding != ENC_BINARY))
1771 {
1772 mutt_debug(LL_DEBUG1, "Bad encoding type %d for multipart entity, assuming 7 bit\n",
1773 b->encoding);
1774 b->encoding = ENC_7BIT;
1775 }
1776 }
1777 else if ((WithCrypto != 0) && (b->type == TYPE_APPLICATION))
1778 {
1779 if (OptDontHandlePgpKeys && mutt_istr_equal("pgp-keys", b->subtype))
1780 {
1781 /* pass raw part through for key extraction */
1782 plaintext = true;
1783 }
1784 else if (((WithCrypto & APPLICATION_PGP) != 0) && mutt_is_application_pgp(b))
1785 {
1786 encrypted_handler = crypt_pgp_application_handler;
1787 handler = encrypted_handler;
1788 }
1789 else if (((WithCrypto & APPLICATION_SMIME) != 0) && mutt_is_application_smime(b))
1790 {
1791 encrypted_handler = crypt_smime_application_handler;
1792 handler = encrypted_handler;
1793 }
1794 }
1795
1796 if ((plaintext || handler) && (is_attachment_display || !mutt_prefer_as_attachment(b)))
1797 {
1798 /* only respect disposition == attachment if we're not
1799 * displaying from the attachment menu (i.e. pager) */
1800 /* Prevent encrypted attachments from being included in replies
1801 * unless $include_encrypted is set. */
1802 const bool c_include_encrypted = cs_subset_bool(NeoMutt->sub, "include_encrypted");
1803 if ((state->flags & STATE_REPLYING) && (state->flags & STATE_FIRSTDONE) &&
1804 encrypted_handler && !c_include_encrypted)
1805 {
1806 goto cleanup;
1807 }
1808
1809 rc = run_decode_and_handler(b, state, handler, plaintext);
1810 }
1811 else if (state->flags & STATE_DISPLAY)
1812 {
1813 /* print hint to use attachment menu for disposition == attachment
1814 * if we're not already being called from there */
1815 const bool c_honor_disposition = cs_subset_bool(NeoMutt->sub, "honor_disposition");
1816 struct Buffer *msg = buf_pool_get();
1817
1818 if (is_attachment_display)
1819 {
1820 if (c_honor_disposition && (b->disposition == DISP_ATTACH))
1821 {
1822 buf_strcpy(msg, _("[-- This is an attachment --]\n"));
1823 }
1824 else
1825 {
1826 /* L10N: %s/%s is a MIME type, e.g. "text/plain". */
1827 buf_printf(msg, _("[-- %s/%s is unsupported --]\n"), BODY_TYPE(b), b->subtype);
1828 }
1829 }
1830 else
1831 {
1832 struct Buffer *keystroke = buf_pool_get();
1833 const struct MenuDefinition *md_pager = pager_get_menu_definition();
1834 if (keymap_expand_key(km_find_func(md_pager, OP_VIEW_ATTACHMENTS), keystroke))
1835 {
1836 if (c_honor_disposition && (b->disposition == DISP_ATTACH))
1837 {
1838 /* L10N: %s expands to a keystroke/key binding, e.g. 'v'. */
1839 buf_printf(msg, _("[-- This is an attachment (use '%s' to view this part) --]\n"),
1840 buf_string(keystroke));
1841 }
1842 else
1843 {
1844 /* L10N: %s/%s is a MIME type, e.g. "text/plain".
1845 The last %s expands to a keystroke/key binding, e.g. 'v'. */
1846 buf_printf(msg, _("[-- %s/%s is unsupported (use '%s' to view this part) --]\n"),
1847 BODY_TYPE(b), b->subtype, buf_string(keystroke));
1848 }
1849 }
1850 else
1851 {
1852 if (c_honor_disposition && (b->disposition == DISP_ATTACH))
1853 {
1854 buf_strcpy(msg, _("[-- This is an attachment (need 'view-attachments' bound to key) --]\n"));
1855 }
1856 else
1857 {
1858 /* L10N: %s/%s is a MIME type, e.g. "text/plain". */
1859 buf_printf(msg, _("[-- %s/%s is unsupported (need 'view-attachments' bound to key) --]\n"),
1860 BODY_TYPE(b), b->subtype);
1861 }
1862 }
1863 buf_pool_release(&keystroke);
1864 }
1865 state_mark_attach(state);
1866 state_printf(state, "%s", buf_string(msg));
1867 buf_pool_release(&msg);
1868 }
1869
1870cleanup:
1871 recurse_level--;
1872 state->flags = oflags | (state->flags & STATE_FIRSTDONE);
1873 if (rc != 0)
1874 {
1875 mutt_debug(LL_DEBUG1, "Bailing on attachment of type %s/%s\n", BODY_TYPE(b),
1876 NONULL(b->subtype));
1877 }
1878
1879 return rc;
1880}
int buf_printf(struct Buffer *buf, const char *fmt,...)
Format a string overwriting a Buffer.
Definition buffer.c:168
size_t buf_strcpy(struct Buffer *buf, const char *s)
Copy a string into a Buffer.
Definition buffer.c:401
static const char * buf_string(const struct Buffer *buf)
Convert a buffer to a const char * "string".
Definition buffer.h:96
const char * cs_subset_string(const struct ConfigSubset *sub, const char *name)
Get a string config item by name.
Definition helpers.c:291
bool cs_subset_bool(const struct ConfigSubset *sub, const char *name)
Get a boolean config item by name.
Definition helpers.c:47
SecurityFlags mutt_is_application_smime(struct Body *b)
Does the message use S/MIME?
Definition crypt.c:610
int mutt_is_valid_multipart_pgp_encrypted(struct Body *b)
Is this a valid multi-part encrypted message?
Definition crypt.c:468
SecurityFlags mutt_is_malformed_multipart_pgp_encrypted(struct Body *b)
Check for malformed layout.
Definition crypt.c:505
SecurityFlags mutt_is_application_pgp(const struct Body *b)
Does the message use PGP?
Definition crypt.c:549
bool mutt_is_message_type(int type, const char *subtype)
Determine if a mime type matches a message or not.
Definition parse.c:1652
bool OptDontHandlePgpKeys
(pseudo) used to extract PGP keys
Definition globals.c:46
int crypt_pgp_application_handler(struct Body *b_email, struct State *state)
Wrapper for CryptModuleSpecs::application_handler() - Implements handler_t -.
Definition cryptglue.c:266
static int alternative_handler(struct Body *b_email, struct State *state)
Handler for multipart alternative emails - Implements handler_t -.
Definition handler.c:952
int text_enriched_handler(struct Body *b_email, struct State *state)
Handler for enriched text - Implements handler_t -.
Definition enriched.c:474
static int text_plain_handler(struct Body *b_email, struct State *state)
Handler for plain text - Implements handler_t -.
Definition handler.c:696
int crypt_smime_application_handler(struct Body *b_email, struct State *state)
Wrapper for CryptModuleSpecs::application_handler() - Implements handler_t -.
Definition cryptglue.c:524
static int autoview_handler(struct Body *b_email, struct State *state)
Handler for autoviewable attachments - Implements handler_t -.
Definition handler.c:543
static int external_body_handler(struct Body *b_email, struct State *state)
Handler for external-body emails - Implements handler_t -.
Definition handler.c:781
int rfc3676_handler(struct Body *b_email, struct State *state)
Handler for format=flowed - Implements handler_t -.
Definition rfc3676.c:329
static int malformed_pgp_encrypted_handler(struct Body *b_email, struct State *state)
Handler for invalid pgp-encrypted emails - Implements handler_t -.
Definition handler.c:1533
static int valid_pgp_encrypted_handler(struct Body *b_email, struct State *state)
Handler for valid pgp-encrypted emails - Implements handler_t -.
Definition handler.c:1504
static int message_handler(struct Body *b_email, struct State *state)
Handler for message/rfc822 body parts - Implements handler_t -.
Definition handler.c:723
static int multipart_handler(struct Body *b_email, struct State *state)
Handler for multipart emails - Implements handler_t -.
Definition handler.c:1256
static int multilingual_handler(struct Body *b_email, struct State *state)
Handler for multi-lingual emails - Implements handler_t -.
Definition handler.c:1143
int mutt_signed_handler(struct Body *b_email, struct State *state)
Handler for "multipart/signed" - Implements handler_t -.
Definition crypt.c:1250
#define mutt_error(...)
Definition logging2.h:94
#define mutt_debug(LEVEL,...)
Definition logging2.h:91
static bool is_autoview(struct Body *b)
Should email body be filtered by mailcap.
Definition handler.c:493
bool mutt_prefer_as_attachment(struct Body *b)
Do we want this part as an attachment?
Definition handler.c:1887
int(* handler_t)(struct Body *b_email, struct State *state)
Definition handler.c:89
static int run_decode_and_handler(struct Body *b, struct State *state, handler_t handler, bool plaintext)
Run an appropriate decoder for an email.
Definition handler.c:1346
bool keymap_expand_key(struct Keymap *km, struct Buffer *buf)
Get the key string bound to a Keymap.
Definition keymap.c:247
struct Keymap * km_find_func(const struct MenuDefinition *md, int func)
Find a function's mapping in a Menu.
Definition menu.c:141
@ LL_DEBUG1
Log at debug level 1.
Definition logging2.h:45
@ ENC_7BIT
7-bit text
Definition mime.h:49
@ ENC_BINARY
Binary.
Definition mime.h:53
@ ENC_8BIT
8-bit text
Definition mime.h:50
#define MUTT_MIME_MAX_DEPTH
Maximum nesting depth for MIME parts to prevent stack overflow.
Definition mime.h:69
@ TYPE_MESSAGE
Type: 'message/*'.
Definition mime.h:35
@ TYPE_MULTIPART
Type: 'multipart/*'.
Definition mime.h:37
@ TYPE_APPLICATION
Type: 'application/*'.
Definition mime.h:33
@ TYPE_TEXT
Type: 'text/*'.
Definition mime.h:38
#define BODY_TYPE(body)
Get the type name of a body part.
Definition mime.h:93
@ DISP_ATTACH
Content is attached.
Definition mime.h:63
#define _(a)
Definition message.h:28
void state_mark_attach(struct State *state)
Write a unique marker around content.
Definition state.c:73
int state_printf(struct State *state, const char *fmt,...)
Write a formatted string to the State.
Definition state.c:190
@ STATE_CHARCONV
Do character set conversions.
Definition state.h:41
@ STATE_FIRSTDONE
The first attachment has been done.
Definition state.h:44
@ STATE_REPLYING
Are we replying?
Definition state.h:43
@ STATE_VERIFY
Perform signature verification.
Definition state.h:38
@ STATE_DISPLAY_ATTACH
We are displaying an attachment.
Definition state.h:45
@ STATE_DISPLAY
Output is displayed to the user.
Definition state.h:37
bool mutt_istr_equal(const char *a, const char *b)
Compare two strings, ignoring case.
Definition string.c:678
bool mutt_str_equal(const char *a, const char *b)
Compare two strings.
Definition string.c:666
#define APPLICATION_PGP
Use PGP to encrypt/sign.
Definition lib.h:106
#define PGP_ENCRYPT
Email is PGP encrypted.
Definition lib.h:112
#define APPLICATION_SMIME
Use SMIME to encrypt/sign.
Definition lib.h:107
#define WithCrypto
Definition lib.h:132
struct MenuDefinition * pager_get_menu_definition(void)
Get the Pager Menu Definition.
Definition functions.c:1115
char * mutt_param_get(const struct ParameterList *pl, const char *s)
Find a matching Parameter.
Definition parameter.c:85
struct Buffer * buf_pool_get(void)
Get a Buffer from the pool.
Definition pool.c:91
void buf_pool_release(struct Buffer **ptr)
Return a Buffer to the pool.
Definition pool.c:111
#define NONULL(x)
Definition string2.h:44
struct ParameterList parameter
Parameters of the content-type.
Definition body.h:63
unsigned int disposition
content-disposition, ContentDisposition
Definition body.h:42
char * subtype
content-type subtype
Definition body.h:61
unsigned int encoding
content-transfer-encoding, ContentEncoding
Definition body.h:41
unsigned int type
content-type primary type, ContentType
Definition body.h:40
String manipulation buffer.
Definition buffer.h:36
Functions for a Dialog or Window.
Definition menudef.h:44
Container for Accounts, Notifications.
Definition neomutt.h:41
struct ConfigSubset * sub
Inherited config items.
Definition neomutt.h:49
StateFlags flags
Flags, e.g. STATE_DISPLAY.
Definition state.h:58
Here is the call graph for this function:
Here is the caller graph for this function:

◆ LLVMFuzzerTestOneInput()

int LLVMFuzzerTestOneInput ( const uint8_t * data,
size_t size )

Definition at line 65 of file body.c.

66{
68
70 char **tmp_env = MUTT_MEM_CALLOC(2, char *);
71 neomutt_init(NeoMutt, tmp_env, Modules);
72 FREE(&tmp_env);
73
74 char file[] = "/tmp/mutt-fuzz-body";
75 FILE *fp = fopen(file, "wb");
76 if (!fp)
77 return -1;
78 fwrite(data, 1, size, fp);
79 fclose(fp);
80
81 fp = fopen(file, "rb");
82 if (!fp)
83 return -1;
84
85 struct Email *e = email_new();
86 struct Envelope *env = mutt_rfc822_read_header(fp, e, 0, 0);
87 mutt_parse_part(fp, e->body);
88
89 // Decode/render the parsed body tree. fp_in must stay open: Body parts
90 // reference byte offsets in the message file.
91 if (e->body)
92 {
93 FILE *out = fopen("/dev/null", "w");
94 if (out)
95 {
96 struct State state = { 0 };
97 state.fp_in = fp;
98 state.fp_out = out;
99 state.flags = STATE_DISPLAY;
100 state.wraplen = 80;
101 mutt_body_handler(e->body, &state);
102 fclose(out);
103 }
104 }
105
106 email_free(&e);
107 mutt_env_free(&env);
108 fclose(fp);
111 return 0;
112}
struct Email * email_new(void)
Create a new Email.
Definition email.c:77
void email_free(struct Email **ptr)
Free an Email.
Definition email.c:46
void mutt_parse_part(FILE *fp, struct Body *b)
Parse a MIME part.
Definition parse.c:1981
struct Envelope * mutt_rfc822_read_header(FILE *fp, struct Email *e, bool user_hdrs, bool weed)
Parses an RFC822 header.
Definition parse.c:1357
void mutt_env_free(struct Envelope **ptr)
Free an Envelope.
Definition envelope.c:125
static const struct Module * Modules[]
All the library Modules.
Definition address.c:32
int mutt_body_handler(struct Body *b, struct State *state)
Handler for the Body of an email.
Definition handler.c:1668
int log_disp_null(time_t stamp, const char *file, int line, const char *function, enum LogLevel level, const char *format,...)
Discard log lines - Implements log_dispatcher_t -.
Definition logging.c:515
int log_dispatcher_t MuttLogger
#define FREE(x)
Free memory and set the pointer to NULL.
Definition memory.h:68
#define MUTT_MEM_CALLOC(n, type)
Definition memory.h:52
void neomutt_cleanup(struct NeoMutt *n)
Clean up NeoMutt and Modules.
Definition neomutt.c:474
bool neomutt_init(struct NeoMutt *n, char **envp, const struct Module **modules)
Initialise NeoMutt.
Definition neomutt.c:350
struct NeoMutt * neomutt_new(void)
Create the main NeoMutt object.
Definition neomutt.c:338
void neomutt_free(struct NeoMutt **ptr)
Free a NeoMutt.
Definition neomutt.c:501
The envelope/body of an email.
Definition email.h:39
struct Body * body
List of MIME parts.
Definition email.h:69
The header of an Email.
Definition envelope.h:57
Keep track when processing files.
Definition state.h:54
int wraplen
Width to wrap lines to (when flags & STATE_DISPLAY).
Definition state.h:59
FILE * fp_out
File to write to.
Definition state.h:56
FILE * fp_in
File to read from.
Definition state.h:55
Here is the call graph for this function:

Variable Documentation

◆ StartupComplete

bool StartupComplete = true

Definition at line 14 of file body.c.

◆ ModuleMain

const struct Module ModuleMain
extern

Module for the Main library.

Definition at line 63 of file module.c.

63 {
65 "main",
66 NULL, // init
67 NULL, // config_define_types
69 NULL, // commands_register
72 NULL, // cleanup
73};
static void main_gui_cleanup(struct NeoMutt *n)
Clean up the GUI - Implements Module::gui_cleanup().
Definition module.c:56
static bool main_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:40
static bool main_gui_init(struct NeoMutt *n)
Initialise the GUI - Implements Module::gui_init().
Definition module.c:48
@ MODULE_ID_MAIN
ModuleMain, NeoMutt Email Client
Definition module_api.h:44

◆ ModuleAddress

const struct Module ModuleAddress
extern

Module for the Address library.

Definition at line 94 of file module.c.

94 {
96 "address",
100 NULL, // commands_register
101 NULL, // gui_init
102 NULL, // gui_cleanup
104};
static bool address_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:67
static bool address_config_define_types(struct NeoMutt *n, struct ConfigSet *cs)
Set up Config Types - Implements Module::config_define_types().
Definition module.c:59
static bool address_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:81
static bool address_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:45
@ MODULE_ID_ADDRESS
ModuleAddress, Address
Definition module_api.h:47

◆ ModuleAlias

const struct Module ModuleAlias
extern

Module for the Alias library.

Definition at line 128 of file module.c.

128 {
130 "alias",
132 NULL, // config_define_types
135 NULL, // gui_init
136 NULL, // gui_cleanup
138};
void alias_cleanup(void)
void alias_init(void)
static bool alias_commands_register(struct NeoMutt *n, struct CommandArray *ca)
Register NeoMutt Commands - Implements Module::commands_register().
Definition module.c:86
static bool alias_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:78
@ MODULE_ID_ALIAS
ModuleAlias, Alias
Definition module_api.h:48

◆ ModuleAttach

const struct Module ModuleAttach
extern

Module for the Attach library.

Definition at line 111 of file module.c.

111 {
113 "attach",
115 NULL, // config_define_types
118 NULL, // gui_init
119 NULL, // gui_cleanup
121};
static bool attach_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:46
static bool attach_commands_register(struct NeoMutt *n, struct CommandArray *ca)
Register NeoMutt Commands - Implements Module::commands_register().
Definition module.c:79
static bool attach_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:71
static bool attach_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:87
@ MODULE_ID_ATTACH
ModuleAttach, Attachments
Definition module_api.h:49

◆ ModuleAutocrypt

const struct Module ModuleAutocrypt
extern

Module for the Autocrypt library.

Definition at line 91 of file module.c.

91 {
93 "autocrypt",
95 NULL, // config_define_types
97 NULL, // commands_register
98 NULL, // gui_init
99 NULL, // gui_cleanup
101};
static bool autocrypt_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:59
static bool autocrypt_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:45
static bool autocrypt_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:73
@ MODULE_ID_AUTOCRYPT
ModuleAutocrypt, Autocrypt
Definition module_api.h:50

◆ ModuleBcache

const struct Module ModuleBcache
extern

Module for the Bcache library.

Definition at line 66 of file module.c.

66 {
68 "bcache",
70 NULL, // config_define_types
71 NULL, // config_define_variables
72 NULL, // commands_register
73 NULL, // gui_init
74 NULL, // gui_cleanup
76};
static bool bcache_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:39
static bool bcache_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:53
@ MODULE_ID_BCACHE
ModuleBcache, Body (Message) Cache
Definition module_api.h:51

◆ ModuleBrowser

const struct Module ModuleBrowser
extern

Module for the Browser library.

Definition at line 91 of file module.c.

91 {
93 "browser",
95 NULL, // config_define_types
97 NULL, // commands_register
99 NULL, // gui_cleanup
101};
static bool browser_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:68
static bool browser_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:43
static bool browser_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:60
static bool browser_gui_init(struct NeoMutt *n)
Initialise the GUI - Implements Module::gui_init().
Definition module.c:83
@ MODULE_ID_BROWSER
ModuleBrowser, Mailbox Browser
Definition module_api.h:52

◆ ModuleColor

const struct Module ModuleColor
extern

Module for the Color library.

Definition at line 104 of file module.c.

104 {
106 "color",
108 NULL, // config_define_types
114};
static bool color_gui_init(struct NeoMutt *n)
Initialise the GUI - Implements Module::gui_init().
Definition module.c:74
static bool color_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:44
static bool color_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:58
static bool color_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:91
static bool color_commands_register(struct NeoMutt *n, struct CommandArray *ca)
Register NeoMutt Commands - Implements Module::commands_register().
Definition module.c:66
static void color_gui_cleanup(struct NeoMutt *n)
Clean up the GUI - Implements Module::gui_cleanup().
Definition module.c:82
@ MODULE_ID_COLOR
ModuleColor, Color
Definition module_api.h:53

◆ ModuleCommands

const struct Module ModuleCommands
extern

Module for the Commands library.

Definition at line 78 of file module.c.

78 {
80 "commands",
82 NULL, // config_define_types
83 NULL, // config_define_variables
85 NULL, // gui_init
86 NULL, // gui_cleanup
88};
static bool commands_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:64
static bool commands_commands_register(struct NeoMutt *n, struct CommandArray *ca)
Register NeoMutt Commands - Implements Module::commands_register().
Definition module.c:56
static bool commands_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:41
@ MODULE_ID_COMMANDS
ModuleCommands, NeoMutt Commands
Definition module_api.h:54

◆ ModuleComplete

const struct Module ModuleComplete
extern

Module for the Complete library.

Definition at line 66 of file module.c.

66 {
68 "complete",
70 NULL, // config_define_types
71 NULL, // config_define_variables
72 NULL, // commands_register
73 NULL, // gui_init
74 NULL, // gui_cleanup
76};
static bool complete_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:53
static bool complete_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:39
@ MODULE_ID_COMPLETE
ModuleComplete, Auto-completion
Definition module_api.h:55

◆ ModuleCompmbox

const struct Module ModuleCompmbox
extern

Module for the Compmbox library.

Definition at line 76 of file module.c.

76 {
78 "compmbox",
80 NULL, // config_define_types
81 NULL, // config_define_variables
83 NULL, // gui_init
84 NULL, // gui_cleanup
86};
static bool compmbox_commands_register(struct NeoMutt *n, struct CommandArray *ca)
Register NeoMutt Commands - Implements Module::commands_register().
Definition module.c:55
static bool compmbox_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:63
static bool compmbox_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:41
@ MODULE_ID_COMPMBOX
ModuleCompmbox, Compressed Mailbox
Definition module_api.h:56

◆ ModuleCompose

const struct Module ModuleCompose
extern

Module for the Compose library.

Definition at line 77 of file module.c.

77 {
79 "compose",
81 NULL, // config_define_types
83 NULL, // commands_register
84 NULL, // gui_init
85 NULL, // gui_cleanup
87};
static bool compose_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:42
static bool compose_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:64
static bool compose_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:56
@ MODULE_ID_COMPOSE
ModuleCompose, Compose an Email
Definition module_api.h:57

◆ ModuleCompress

const struct Module ModuleCompress
extern

Module for the Compress library.

Definition at line 66 of file module.c.

66 {
68 "compress",
70 NULL, // config_define_types
71 NULL, // config_define_variables
72 NULL, // commands_register
73 NULL, // gui_init
74 NULL, // gui_cleanup
76};
static bool compress_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:39
static bool compress_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:53
@ MODULE_ID_COMPRESS
ModuleCompress, Compression functions
Definition module_api.h:58

◆ ModuleConfig

const struct Module ModuleConfig
extern

Module for the Config library.

Definition at line 103 of file module.c.

103 {
105 "config",
108 NULL, // config_define_variables
109 NULL, // commands_register
110 NULL, // gui_init
111 NULL, // gui_cleanup
113};
static bool config_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:90
static bool config_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:53
static bool config_config_define_types(struct NeoMutt *n, struct ConfigSet *cs)
Set up Config Types - Implements Module::config_define_types().
Definition module.c:67
@ MODULE_ID_CONFIG
ModuleConfig, Config
Definition module_api.h:59

◆ ModuleConn

const struct Module ModuleConn
extern

Module for the Conn library.

Definition at line 128 of file module.c.

128 {
130 "conn",
131 conn_init,
132 NULL, // config_define_types
134 NULL, // commands_register
135 NULL, // gui_init
136 NULL, // gui_cleanup
138};
static bool conn_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:104
static bool conn_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:72
static bool conn_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:53
@ MODULE_ID_CONN
ModuleConn, Network connections
Definition module_api.h:60

◆ ModuleConvert

const struct Module ModuleConvert
extern

Module for the Convert library.

Definition at line 66 of file module.c.

66 {
68 "convert",
70 NULL, // config_define_types
71 NULL, // config_define_variables
72 NULL, // commands_register
73 NULL, // gui_init
74 NULL, // gui_cleanup
76};
static bool convert_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:39
static bool convert_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:53
@ MODULE_ID_CONVERT
ModuleConvert, File Charset Conversion
Definition module_api.h:61

◆ ModuleCore

const struct Module ModuleCore
extern

Module for the Core library.

Definition at line 67 of file module.c.

67 {
69 NULL, // config_define_types
70 NULL, // config_define_variables
71 NULL, // commands_register
72 NULL, // gui_init
73 NULL, // gui_cleanup
75};
static bool core_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:40
static bool core_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:54
@ MODULE_ID_CORE
ModuleCore, Core NeoMutt objects
Definition module_api.h:62

◆ ModuleEditor

const struct Module ModuleEditor
extern

Module for the Editor library.

Definition at line 66 of file module.c.

66 {
68 "editor",
70 NULL, // config_define_types
71 NULL, // config_define_variables
72 NULL, // commands_register
73 NULL, // gui_init
74 NULL, // gui_cleanup
76};
static bool editor_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:39
static bool editor_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:53
@ MODULE_ID_EDITOR
ModuleEditor, Edit a string
Definition module_api.h:63

◆ ModuleEmail

const struct Module ModuleEmail
extern

Module for the Email library.

Definition at line 127 of file module.c.

127 {
129 "email",
131 NULL, // config_define_types
134 NULL, // gui_init
135 NULL, // gui_cleanup
137};
static bool email_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:99
static bool email_commands_register(struct NeoMutt *n, struct CommandArray *ca)
Register NeoMutt Commands - Implements Module::commands_register().
Definition module.c:91
static bool email_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:46
static bool email_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:83
@ MODULE_ID_EMAIL
ModuleEmail, Email code
Definition module_api.h:64

◆ ModuleEnvelope

const struct Module ModuleEnvelope
extern

Module for the Envelope library.

Definition at line 66 of file module.c.

66 {
68 "envelope",
70 NULL, // config_define_types
71 NULL, // config_define_variables
72 NULL, // commands_register
73 NULL, // gui_init
74 NULL, // gui_cleanup
76};
static bool envelope_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:53
static bool envelope_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:39
@ MODULE_ID_ENVELOPE
ModuleEnvelope, Envelope-editing Window
Definition module_api.h:65

◆ ModuleExpando

const struct Module ModuleExpando
extern

Module for the Expando library.

Definition at line 77 of file module.c.

77 {
79 "expando",
82 NULL, // config_define_variables
83 NULL, // commands_register
84 NULL, // gui_init
85 NULL, // gui_cleanup
87};
static bool expando_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:42
static bool expando_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:64
static bool expando_config_define_types(struct NeoMutt *n, struct ConfigSet *cs)
Set up Config Types - Implements Module::config_define_types().
Definition module.c:56
@ MODULE_ID_EXPANDO
ModuleExpando, Parse Expando string
Definition module_api.h:66

◆ ModuleGui

const struct Module ModuleGui
extern

Module for the Gui library.

Definition at line 145 of file module.c.

145 {
147 "gui",
148 gui_init,
149 NULL, // config_define_types
151 NULL, // commands_register
155};
static bool gui_gui_init(struct NeoMutt *n)
Initialise the GUI - Implements Module::gui_init().
Definition module.c:99
static bool gui_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:132
static bool gui_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:91
static bool gui_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:77
static void gui_gui_cleanup(struct NeoMutt *n)
Clean up the GUI - Implements Module::gui_cleanup().
Definition module.c:121
@ MODULE_ID_GUI
ModuleGui, Graphical code
Definition module_api.h:45

◆ ModuleHcache

const struct Module ModuleHcache
extern

Module for the Hcache library.

Definition at line 86 of file module.c.

86 {
88 "hcache",
90 NULL, // config_define_types
92 NULL, // commands_register
93 NULL, // gui_init
94 NULL, // gui_cleanup
96};
static bool hcache_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:57
static bool hcache_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:73
static bool hcache_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:43
@ MODULE_ID_HCACHE
ModuleHcache, Email Header Cache
Definition module_api.h:68

◆ ModuleHelpbar

const struct Module ModuleHelpbar
extern

Module for the Helpbar library.

Definition at line 77 of file module.c.

77 {
79 "helpbar",
81 NULL, // config_define_types
83 NULL, // commands_register
84 NULL, // gui_init
85 NULL, // gui_cleanup
87};
static bool helpbar_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:42
static bool helpbar_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:64
static bool helpbar_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:56
@ MODULE_ID_HELPBAR
ModuleHelpbar, Help bar
Definition module_api.h:69

◆ ModuleHistory

const struct Module ModuleHistory
extern

Module for the History library.

Definition at line 98 of file module.c.

98 {
100 "history",
102 NULL, // config_define_types
104 NULL, // commands_register
108};
static bool history_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:57
static bool history_gui_init(struct NeoMutt *n)
Initialise the GUI - Implements Module::gui_init().
Definition module.c:78
static bool history_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:43
static bool history_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:65
static void history_gui_cleanup(struct NeoMutt *n)
Clean up the GUI - Implements Module::gui_cleanup().
Definition module.c:89
@ MODULE_ID_HISTORY
ModuleHistory, History
Definition module_api.h:70

◆ ModuleHooks

const struct Module ModuleHooks
extern

Module for the Hooks library.

Definition at line 92 of file module.c.

92 {
94 "hooks",
96 NULL, // config_define_types
99 NULL, // gui_init
100 NULL, // gui_cleanup
102};
static bool hooks_commands_register(struct NeoMutt *n, struct CommandArray *ca)
Register NeoMutt Commands - Implements Module::commands_register().
Definition module.c:68
static bool hooks_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:76
static bool hooks_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:45
static bool hooks_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:60
@ MODULE_ID_HOOKS
ModuleHooks, Hook Commands
Definition module_api.h:71

◆ ModuleImap

const struct Module ModuleImap
extern

Module for the Imap library.

Definition at line 96 of file module.c.

96 {
98 "imap",
100 NULL, // config_define_types
103 NULL, // gui_init
104 NULL, // gui_cleanup
106};
static bool imap_commands_register(struct NeoMutt *n, struct CommandArray *ca)
Register NeoMutt Commands - Implements Module::commands_register().
Definition module.c:75
static bool imap_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:61
static bool imap_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:83
static bool imap_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:45
@ MODULE_ID_IMAP
ModuleImap, Imap Mailbox
Definition module_api.h:72

◆ ModuleIndex

const struct Module ModuleIndex
extern

Module for the Index library.

Definition at line 91 of file module.c.

91 {
93 "index",
95 NULL, // config_define_types
98 NULL, // gui_init
99 NULL, // gui_cleanup
101};
static bool index_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:76
static bool index_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:60
static bool index_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:45
static bool index_commands_register(struct NeoMutt *n, struct CommandArray *ca)
Register NeoMutt Commands - Implements Module::commands_register().
Definition module.c:68
@ MODULE_ID_INDEX
ModuleIndex, Index
Definition module_api.h:73

◆ ModuleKey

const struct Module ModuleKey
extern

Module for the Key library.

Definition at line 98 of file module.c.

98 {
100 "key",
101 key_init,
102 NULL, // config_define_types
103 NULL, // config_define_variables
108};
static bool key_gui_init(struct NeoMutt *n)
Initialise the GUI - Implements Module::gui_init().
Definition module.c:79
static bool key_commands_register(struct NeoMutt *n, struct CommandArray *ca)
Register NeoMutt Commands - Implements Module::commands_register().
Definition module.c:58
static void key_gui_cleanup(struct NeoMutt *n)
Clean up the GUI - Implements Module::gui_cleanup().
Definition module.c:89
static bool key_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:42
static bool key_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:66
@ MODULE_ID_KEY
ModuleKey, Key mappings
Definition module_api.h:74

◆ ModuleLua

const struct Module ModuleLua
extern

Module for the Lua library.

Definition at line 84 of file module.c.

84 {
86 "lua",
88 NULL, // config_define_types
89 NULL, // config_define_variables
91 NULL, // gui_init
92 NULL, // gui_cleanup
94};
static bool lua_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:64
static bool lua_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:42
static bool lua_commands_register(struct NeoMutt *n, struct CommandArray *ca)
Register NeoMutt Commands - Implements Module::commands_register().
Definition module.c:56
@ MODULE_ID_LUA
ModuleLua, Integrated Lua scripting
Definition module_api.h:75

◆ ModuleMaildir

const struct Module ModuleMaildir
extern

Module for the Maildir library.

Definition at line 84 of file module.c.

84 {
86 "maildir",
88 NULL, // config_define_types
90 NULL, // commands_register
91 NULL, // gui_init
92 NULL, // gui_cleanup
94};
static bool maildir_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:71
static bool maildir_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:43
static bool maildir_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:57
@ MODULE_ID_MAILDIR
ModuleMaildir, Maildir Mailbox
Definition module_api.h:76

◆ ModuleMbox

const struct Module ModuleMbox
extern

Module for the Mbox library.

Definition at line 77 of file module.c.

77 {
79 "mbox",
81 NULL, // config_define_types
83 NULL, // commands_register
84 NULL, // gui_init
85 NULL, // gui_cleanup
87};
static bool mbox_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:42
static bool mbox_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:64
static bool mbox_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:56
@ MODULE_ID_MBOX
ModuleMbox, Mbox
Definition module_api.h:77

◆ ModuleMenu

const struct Module ModuleMenu
extern

Module for the Menu library.

Definition at line 101 of file module.c.

101 {
103 "menu",
104 menu_init,
105 NULL, // config_define_types
107 NULL, // commands_register
111};
static bool menu_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:44
static void menu_gui_cleanup(struct NeoMutt *n)
Clean up the GUI - Implements Module::gui_cleanup().
Definition module.c:76
static bool menu_gui_init(struct NeoMutt *n)
Initialise the GUI - Implements Module::gui_init().
Definition module.c:66
static bool menu_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:58
static bool menu_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:88
@ MODULE_ID_MENU
ModuleMenu, Menu
Definition module_api.h:78

◆ ModuleMh

const struct Module ModuleMh
extern

Module for the Mh library.

Definition at line 77 of file module.c.

77 {
79 "mh",
80 mh_init,
81 NULL, // config_define_types
83 NULL, // commands_register
84 NULL, // gui_init
85 NULL, // gui_cleanup
87};
static bool mh_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:56
static bool mh_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:64
static bool mh_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:42
@ MODULE_ID_MH
ModuleMh, Mh Mailbox
Definition module_api.h:79

◆ ModuleMutt

const struct Module ModuleMutt
extern

Module for the Mutt library.

Definition at line 67 of file module.c.

67 {
69 NULL, // config_define_types
70 NULL, // config_define_variables
71 NULL, // commands_register
72 NULL, // gui_init
73 NULL, // gui_cleanup
75};
static int mutt_init(struct ConfigSet *cs, struct Buffer *dlevel, struct Buffer *dfile, bool skip_sys_rc, struct StringArray *user_files, struct StringArray *commands)
Initialise NeoMutt.
Definition main.c:420
@ MODULE_ID_MUTT
ModuleMutt, Mutt
Definition module_api.h:81
static bool mutt_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:54

◆ ModuleNcrypt

const struct Module ModuleNcrypt
extern

Module for the Ncrypt library.

Definition at line 105 of file module.c.

105 {
107 "ncrypt",
109 NULL, // config_define_types
111 NULL, // commands_register
112 NULL, // gui_init
113 NULL, // gui_cleanup
115};
@ MODULE_ID_NCRYPT
ModuleNcrypt, Ncrypt
Definition module_api.h:82
static bool ncrypt_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:85
static bool ncrypt_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:46
static bool ncrypt_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:61

◆ ModuleNntp

const struct Module ModuleNntp
extern

Module for the Nntp library.

Definition at line 77 of file module.c.

77 {
79 "nntp",
81 NULL, // config_define_types
83 NULL, // commands_register
84 NULL, // gui_init
85 NULL, // gui_cleanup
87};
@ MODULE_ID_NNTP
ModuleNntp, Nntp
Definition module_api.h:83
static bool nntp_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:64
static bool nntp_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:56
static bool nntp_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:42

◆ ModuleNotmuch

const struct Module ModuleNotmuch
extern

Module for the Notmuch library.

Definition at line 118 of file module.c.

118 {
120 "notmuch",
122 NULL, // config_define_types
128};
@ MODULE_ID_NOTMUCH
ModuleNotmuch, Notmuch
Definition module_api.h:84
static bool notmuch_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:58
static bool notmuch_gui_init(struct NeoMutt *n)
Initialise the GUI - Implements Module::gui_init().
Definition module.c:80
static void notmuch_gui_cleanup(struct NeoMutt *n)
Clean up the GUI - Implements Module::gui_cleanup().
Definition module.c:98
static bool notmuch_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:44
static bool notmuch_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:105
static bool notmuch_commands_register(struct NeoMutt *n, struct CommandArray *ca)
Register NeoMutt Commands - Implements Module::commands_register().
Definition module.c:72

◆ ModulePager

const struct Module ModulePager
extern

Module for the Pager library.

Definition at line 80 of file module.c.

80 {
82 "pager",
84 NULL, // config_define_types
86 NULL, // commands_register
87 NULL, // gui_init
88 NULL, // gui_cleanup
90};
@ MODULE_ID_PAGER
ModulePager, Pager
Definition module_api.h:85
static bool pager_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:42
static bool pager_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:67
static bool pager_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:59

◆ ModuleParse

const struct Module ModuleParse
extern

Module for the Parse library.

Definition at line 66 of file module.c.

66 {
68 "parse",
70 NULL, // config_define_types
71 NULL, // config_define_variables
72 NULL, // commands_register
73 NULL, // gui_init
74 NULL, // gui_cleanup
76};
@ MODULE_ID_PARSE
ModuleParse, Text parsing functions
Definition module_api.h:86
static bool parse_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:39
static bool parse_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:53

◆ ModulePattern

const struct Module ModulePattern
extern

Module for the Pattern library.

Definition at line 93 of file module.c.

93 {
95 "pattern",
97 NULL, // config_define_types
99 NULL, // commands_register
100 NULL, // gui_init
101 NULL, // gui_cleanup
103};
@ MODULE_ID_PATTERN
ModulePattern, Pattern
Definition module_api.h:87
static bool pattern_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:66
static bool pattern_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:74
static bool pattern_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:43

◆ ModulePop

const struct Module ModulePop
extern

Module for the Pop library.

Definition at line 77 of file module.c.

77 {
79 "pop",
81 NULL, // config_define_types
83 NULL, // commands_register
84 NULL, // gui_init
85 NULL, // gui_cleanup
87};
@ MODULE_ID_POP
ModulePop, Pop
Definition module_api.h:88
static bool pop_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:42
static bool pop_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:64
static bool pop_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:56

◆ ModulePostpone

const struct Module ModulePostpone
extern

Module for the Postpone library.

Definition at line 66 of file module.c.

66 {
68 "postpone",
70 NULL, // config_define_types
71 NULL, // config_define_variables
72 NULL, // commands_register
73 NULL, // gui_init
74 NULL, // gui_cleanup
76};
@ MODULE_ID_POSTPONE
ModulePostpone, Postponed Emails
Definition module_api.h:89
static bool postpone_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:39
static bool postpone_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:53

◆ ModuleProgress

const struct Module ModuleProgress
extern

Module for the Progress library.

Definition at line 77 of file module.c.

77 {
79 "progress",
81 NULL, // config_define_types
83 NULL, // commands_register
84 NULL, // gui_init
85 NULL, // gui_cleanup
87};
@ MODULE_ID_PROGRESS
ModuleProgress, Progress Bar
Definition module_api.h:90
static bool progress_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:64
static bool progress_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:42
static bool progress_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:56

◆ ModuleQuestion

const struct Module ModuleQuestion
extern

Module for the Question library.

Definition at line 66 of file module.c.

66 {
68 "question",
70 NULL, // config_define_types
71 NULL, // config_define_variables
72 NULL, // commands_register
73 NULL, // gui_init
74 NULL, // gui_cleanup
76};
@ MODULE_ID_QUESTION
ModuleQuestion, Question
Definition module_api.h:91
static bool question_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:53
static bool question_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:39

◆ ModuleSend

const struct Module ModuleSend
extern

Module for the Send library.

Definition at line 91 of file module.c.

91 {
93 "send",
95 NULL, // config_define_types
98 NULL, // gui_init
99 NULL, // gui_cleanup
101};
@ MODULE_ID_SEND
ModuleSend, Send
Definition module_api.h:92
static bool send_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:60
static bool send_commands_register(struct NeoMutt *n, struct CommandArray *ca)
Register NeoMutt Commands - Implements Module::commands_register().
Definition module.c:68
static bool send_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:44
static bool send_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:76

◆ ModuleSidebar

const struct Module ModuleSidebar
extern

Module for the Sidebar library.

Definition at line 111 of file module.c.

111 {
113 "sidebar",
115 NULL, // config_define_types
121};
@ MODULE_ID_SIDEBAR
ModuleSidebar, Sidebar
Definition module_api.h:93
static bool sidebar_config_define_variables(struct NeoMutt *n, struct ConfigSet *cs)
Define the Config Variables - Implements Module::config_define_variables().
Definition module.c:61
static bool sidebar_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:77
static void sidebar_gui_cleanup(struct NeoMutt *n)
Clean up the GUI - Implements Module::gui_cleanup().
Definition module.c:101
static bool sidebar_commands_register(struct NeoMutt *n, struct CommandArray *ca)
Register NeoMutt Commands - Implements Module::commands_register().
Definition module.c:69
static bool sidebar_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:46
static bool sidebar_gui_init(struct NeoMutt *n)
Initialise the GUI - Implements Module::gui_init().
Definition module.c:91

◆ ModuleStore

const struct Module ModuleStore
extern

Module for the Store library.

Definition at line 66 of file module.c.

66 {
68 "store",
70 NULL, // config_define_types
71 NULL, // config_define_variables
72 NULL, // commands_register
73 NULL, // gui_init
74 NULL, // gui_cleanup
76};
@ MODULE_ID_STORE
ModuleStore, Store
Definition module_api.h:94
static bool store_cleanup(struct NeoMutt *n, void *data)
Clean up a Module - Implements Module::cleanup().
Definition module.c:53
static bool store_init(struct NeoMutt *n)
Initialise a Module - Implements Module::init().
Definition module.c:39

◆ Modules

const struct Module* Modules[]
static

Definition at line 32 of file body.c.

32 {
33 // clang-format off
43// clang-format on
44#ifdef USE_AUTOCRYPT
46#endif
47#ifdef USE_HCACHE_COMPRESSION
49#endif
50#ifdef USE_HCACHE
52#endif
53#ifdef USE_LUA
54 &ModuleLua,
55#endif
56#ifdef USE_NOTMUCH
58#endif
59#ifdef USE_HCACHE
61#endif
62 NULL,
63};
const struct Module ModuleAddress
Module for the Address library.
Definition module.c:94
const struct Module ModuleAlias
Module for the Alias library.
Definition module.c:128
const struct Module ModuleAttach
Module for the Attach library.
Definition module.c:111
const struct Module ModuleAutocrypt
Module for the Autocrypt library.
Definition module.c:91
const struct Module ModuleBcache
Module for the Bcache library.
Definition module.c:66
const struct Module ModuleBrowser
Module for the Browser library.
Definition module.c:91
const struct Module ModuleColor
Module for the Color library.
Definition module.c:104
const struct Module ModuleCommands
Module for the Commands library.
Definition module.c:78
const struct Module ModuleComplete
Module for the Complete library.
Definition module.c:66
const struct Module ModuleCompmbox
Module for the Compmbox library.
Definition module.c:76
const struct Module ModuleCompose
Module for the Compose library.
Definition module.c:77
const struct Module ModuleCompress
Module for the Compress library.
Definition module.c:66
const struct Module ModuleConfig
Module for the Config library.
Definition module.c:103
const struct Module ModuleConn
Module for the Conn library.
Definition module.c:128
const struct Module ModuleConvert
Module for the Convert library.
Definition module.c:66
const struct Module ModuleCore
Module for the Core library.
Definition module.c:67
const struct Module ModuleEditor
Module for the Editor library.
Definition module.c:66
const struct Module ModuleEmail
Module for the Email library.
Definition module.c:127
const struct Module ModuleEnvelope
Module for the Envelope library.
Definition module.c:66
const struct Module ModuleExpando
Module for the Expando library.
Definition module.c:77
const struct Module ModulePop
Module for the Pop library.
Definition module.c:77
const struct Module ModuleParse
Module for the Parse library.
Definition module.c:66
const struct Module ModuleMaildir
Module for the Maildir library.
Definition module.c:84
const struct Module ModulePostpone
Module for the Postpone library.
Definition module.c:66
const struct Module ModuleSidebar
Module for the Sidebar library.
Definition module.c:111
const struct Module ModuleMh
Module for the Mh library.
Definition module.c:77
const struct Module ModuleLua
Module for the Lua library.
Definition module.c:84
const struct Module ModulePager
Module for the Pager library.
Definition module.c:80
const struct Module ModuleGui
Module for the Gui library.
Definition module.c:145
const struct Module ModuleProgress
Module for the Progress library.
Definition module.c:77
const struct Module ModuleMenu
Module for the Menu library.
Definition module.c:101
const struct Module ModuleNcrypt
Module for the Ncrypt library.
Definition module.c:105
const struct Module ModuleMutt
Module for the Mutt library.
Definition module.c:67
const struct Module ModuleHcache
Module for the Hcache library.
Definition module.c:86
const struct Module ModuleSend
Module for the Send library.
Definition module.c:91
const struct Module ModuleQuestion
Module for the Question library.
Definition module.c:66
const struct Module ModuleImap
Module for the Imap library.
Definition module.c:96
const struct Module ModuleMain
Module for the Main library.
Definition module.c:63
const struct Module ModuleStore
Module for the Store library.
Definition module.c:66
const struct Module ModuleMbox
Module for the Mbox library.
Definition module.c:77
const struct Module ModulePattern
Module for the Pattern library.
Definition module.c:93
const struct Module ModuleNntp
Module for the Nntp library.
Definition module.c:77
const struct Module ModuleHelpbar
Module for the Helpbar library.
Definition module.c:77
const struct Module ModuleHistory
Module for the History library.
Definition module.c:98
const struct Module ModuleNotmuch
Module for the Notmuch library.
Definition module.c:118
const struct Module ModuleKey
Module for the Key library.
Definition module.c:98
const struct Module ModuleIndex
Module for the Index library.
Definition module.c:91
const struct Module ModuleHooks
Module for the Hooks library.
Definition module.c:92