125 { NULL, NULL, 0, -1, NULL }
138 const char **parsed_until,
157 const char **parsed_until,
176 const char **parsed_until,
185 fmt, parsed_until, err);
189 const char *pc = strchr(
NONULL(node->
text),
'%');
209 const char **parsed_until,
215 _(
"index-hook cannot be used as a condition"));
230 const char **parsed_until,
247 (*parsed_until) = str + 2;
272 if (*parsed_until[0] !=
'}')
349 { NULL, NULL, 0, -1, NULL }
361 {
"abort_backspace",
DT_BOOL,
true, 0, NULL,
362 "Hitting backspace against an empty prompt aborts the prompt"
365 "String representation of key to abort prompts"
367 {
"ascii_chars",
DT_BOOL,
false, 0, NULL,
368 "Use plain ASCII characters, when drawing email threads"
371 "If a message is missing a character set, assume this character set"
374 "printf-like format string for the attachment menu"
376 {
"auto_edit",
DT_BOOL,
false, 0, NULL,
377 "Skip the initial compose menu and edit the email"
379 {
"auto_tag",
DT_BOOL,
false, 0, NULL,
380 "Automatically apply actions to all tagged messages"
382 {
"braille_friendly",
DT_BOOL,
false, 0, NULL,
383 "Move the cursor to the beginning of the line"
386 "Default character set for displaying text on screen"
389 "Use 24bit colors (aka truecolor aka directcolor)"
392 "Character set that the config files are in"
394 {
"confirm_append",
DT_BOOL,
true, 0, NULL,
395 "Confirm before appending emails to a mailbox"
397 {
"confirm_create",
DT_BOOL,
true, 0, NULL,
398 "Confirm before creating a new mailbox"
400 {
"copy_decode_weed",
DT_BOOL,
false, 0, NULL,
401 "Controls whether to weed headers when copying or saving emails"
404 "strftime format string for the `%d` expando"
407 "File to save debug logs"
410 "Logging level for debug logs"
413 "Really delete messages, when the mailbox is closed"
415 {
"delete_untag",
DT_BOOL,
true, 0, NULL,
416 "Untag messages when they are marked for deletion"
419 "External command to use as an email editor"
421 {
"flag_safe",
DT_BOOL,
false, 0, NULL,
422 "Protect flagged messages from deletion"
425 "Base folder for a set of mailboxes"
427 {
"forward_decode",
DT_BOOL,
true, 0, NULL,
428 "Decode the message when forwarding it"
430 {
"forward_quote",
DT_BOOL,
false, 0, NULL,
431 "Automatically quote a forwarded message using `$indent_string`"
434 "Default 'From' address to use, if isn't otherwise set"
436 {
"gecos_mask",
DT_REGEX,
IP "^[^,]*", 0, NULL,
437 "Regex for parsing GECOS field of /etc/passwd"
439 {
"header",
DT_BOOL,
false, 0, NULL,
440 "Include the message headers in the reply email (Weed applies)"
443 "Fully-qualified domain name of this machine"
446 "String used to indent 'reply' text"
448 {
"keep_flagged",
DT_BOOL,
false, 0, NULL,
449 "Don't move flagged messages from `$spool_file` to `$mbox`"
451 {
"local_date_header",
DT_BOOL,
true, 0, NULL,
452 "Convert the date in the Date header of sent emails into local timezone, UTC otherwise"
455 "Number of seconds before NeoMutt checks for new mail"
457 {
"mail_check_recent",
DT_BOOL,
true, 0, NULL,
458 "Notify the user about new mail since the last time the mailbox was opened"
460 {
"mail_check_stats",
DT_BOOL,
false, 0, NULL,
461 "Periodically check for new mail"
464 "How often to check for new mail"
466 {
"mark_old",
DT_BOOL,
true, 0, NULL,
467 "Mark new emails as old when leaving the mailbox"
470 "Folder that receives read emails (see Move)"
473 "Default type for creating new mailboxes"
475 {
"message_cache_clean",
DT_BOOL,
false, 0, NULL,
476 "(imap/pop) Clean out obsolete entries from the message cache"
479 "(imap/pop) Directory for the message cache"
481 {
"meta_key",
DT_BOOL,
false, 0, NULL,
482 "Interpret 'ALT-x' as 'ESC-x'"
485 "Move emails from `$spool_file` to `$mbox` when read"
487 {
"pipe_decode",
DT_BOOL,
false, 0, NULL,
488 "Decode the message when piping it"
490 {
"pipe_decode_weed",
DT_BOOL,
true, 0, NULL,
491 "Control whether to weed headers when piping an email"
494 "Separator to add between multiple piped messages"
496 {
"pipe_split",
DT_BOOL,
false, 0, NULL,
497 "Run the pipe command on each message separately"
500 "Folder to store postponed messages"
503 "Confirm before printing a message"
506 "External command to print a message"
508 {
"print_decode",
DT_BOOL,
true, 0, NULL,
509 "Decode message before printing it"
511 {
"print_decode_weed",
DT_BOOL,
true, 0, NULL,
512 "Control whether to weed headers when printing an email"
514 {
"print_split",
DT_BOOL,
false, 0, NULL,
515 "Print multiple messages separately"
517 {
"quote_regex",
DT_REGEX,
IP "^([ \t]*[|>:}#])+", 0, NULL,
518 "Regex to match quoted text in a reply"
521 "Real name of the user"
524 "Folder to save 'sent' messages"
526 {
"resolve",
DT_BOOL,
true, 0, NULL,
527 "Move to the next email whenever a command modifies an email"
529 {
"resume_edited_draft_files",
DT_BOOL,
true, 0, NULL,
530 "Resume editing previously saved draft files"
532 {
"save_address",
DT_BOOL,
false, 0, NULL,
533 "Use sender's full address as a default save folder"
535 {
"save_empty",
DT_BOOL,
true, 0, NULL,
536 "(mbox,mmdf) Preserve empty mailboxes"
539 "Character sets for outgoing mail"
542 "External command to run subshells in"
544 {
"size_show_bytes",
DT_BOOL,
false, 0, NULL,
545 "Show smaller sizes in bytes"
547 {
"size_show_fractions",
DT_BOOL,
true, 0, NULL,
548 "Show size fractions with a single decimal place"
550 {
"size_show_mb",
DT_BOOL,
true, 0, NULL,
551 "Show sizes in megabytes for sizes greater than 1 megabyte"
553 {
"size_units_on_left",
DT_BOOL,
false, 0, NULL,
554 "Show the units as a prefix to the size"
557 "Time to pause after certain info messages"
560 "Sort method for the index"
563 "Secondary sort method for the index"
568 {
"status_on_top",
DT_BOOL,
false, 0, NULL,
569 "Display the status bar at the top"
571 {
"suspend",
DT_BOOL,
true, 0, NULL,
572 "Allow the user to suspend NeoMutt using '^Z'"
574 {
"text_flowed",
DT_BOOL,
false, 0, NULL,
575 "Generate 'format=flowed' messages"
578 "Time to wait for user input in menus"
581 "Directory for temporary files"
584 "Folder to put deleted emails"
586 {
"use_domain",
DT_BOOL,
true, 0, NULL,
587 "Qualify local addresses using this domain"
590 "Whether to use threads for the index"
592 {
"wait_key",
DT_BOOL,
true, 0, NULL,
593 "Prompt to press a key after running external commands"
595 {
"weed",
DT_BOOL,
true, 0, NULL,
596 "Filter headers when displaying/forwarding/printing/replying"
599 "Width to wrap text in the pager"
601 {
"wrap_search",
DT_BOOL,
true, 0, NULL,
602 "Wrap around when the search hits the end"
613 {
"confirmappend",
DT_SYNONYM,
IP "confirm_append",
IP "2021-03-21" },
614 {
"confirmcreate",
DT_SYNONYM,
IP "confirm_create",
IP "2021-03-21" },
615 {
"forw_decode",
DT_SYNONYM,
IP "forward_decode",
IP "2021-03-21" },
616 {
"forw_quote",
DT_SYNONYM,
IP "forward_quote",
IP "2021-03-21" },
617 {
"indent_str",
DT_SYNONYM,
IP "indent_string",
IP "2021-03-21" },
618 {
"message_cachedir",
DT_SYNONYM,
IP "message_cache_dir",
IP "2023-01-25" },
620 {
"quote_regexp",
DT_SYNONYM,
IP "quote_regex",
IP "2021-03-21" },
625 {
"devel_security",
DT_BOOL,
false, 0, NULL,
626 "Devel feature: Security -- https://github.com/neomutt/neomutt/discussions/4251"
const struct ExpandoDefinition IndexFormatDef[]
Expando definitions.
GUI display the mailboxes in a side panel.
@ ED_ATT_NUMBER
AttachPtr.num.
@ ED_ATT_TREE
AttachPtr.tree.
@ ED_ATT_CHARSET
AttachPtr.body.
Convenience wrapper for the config headers.
Convenience wrapper for the core headers.
@ ED_MBX_MESSAGE_COUNT
Mailbox.msg_count.
@ ED_MBX_PERCENTAGE
EmailFormatInfo.pager_progress.
@ ED_MBX_MAILBOX_NAME
Mailbox, mailbox_path()
@ MUTT_MBOX
'mbox' Mailbox type
bool mutt_isalnum(int arg)
Wrapper for isalnum(3)
uint8_t ExpandoParserFlags
Flags for expando_parse(), e.g. EP_CONDITIONAL.
#define EP_CONDITIONAL
Expando is being used as a condition.
@ ED_ENVELOPE
Envelope ED_ENV_ ExpandoDataEnvelope.
@ ED_EMAIL
Email ED_EMA_ ExpandoDataEmail.
@ ED_GLOBAL
Global ED_GLO_ ExpandoDataGlobal.
@ ED_BODY
Body ED_BOD_ ExpandoDataBody.
@ ED_MAILBOX
Mailbox ED_MBX_ ExpandoDataMailbox.
@ ED_ATTACH
Attach ED_ATT_ ExpandoDataAttach.
@ ED_BOD_DESCRIPTION
Body.description.
@ ED_BOD_CHARSET_CONVERT
Body.type.
@ ED_BOD_DELETED
Body.deleted.
@ ED_BOD_UNLINK
Body.unlink.
@ ED_BOD_FILE_SIZE
Body.filename.
@ ED_BOD_DISPOSITION
Body.disposition.
@ ED_BOD_ATTACH_QUALIFIES
Body.attach_qualifies.
@ ED_BOD_MIME_MAJOR
Body.type, Body.xtype.
@ ED_BOD_TAGGED
Body.tagged.
@ ED_BOD_ATTACH_COUNT
Body.attach_count.
@ ED_BOD_FILE
Body.filename.
@ ED_BOD_MIME_MINOR
Body.subtype.
@ ED_BOD_FILE_DISPOSITION
Body.d_filename.
@ ED_BOD_MIME_ENCODING
Body.encoding.
Structs that make up an email.
@ EMAIL_SORT_LABEL
Sort by the emails label.
@ EMAIL_SORT_DATE_RECEIVED
Sort by when the message was delivered locally.
@ EMAIL_SORT_SPAM
Sort by the email's spam score.
@ EMAIL_SORT_SCORE
Sort by the email's score.
@ EMAIL_SORT_DATE
Sort by the date the email was sent.
@ EMAIL_SORT_THREADS
Sort by email threads.
@ EMAIL_SORT_SUBJECT
Sort by the email's subject.
@ EMAIL_SORT_FROM
Sort by the email's From field.
@ EMAIL_SORT_UNSORTED
Sort by the order the messages appear in the mailbox.
@ EMAIL_SORT_SIZE
Sort by the size of the email.
@ EMAIL_SORT_TO
Sort by the email's To field.
@ ED_EMA_DATE_STRF_LOCAL
Email.date_sent.
@ ED_EMA_ATTACHMENT_COUNT
Email, mutt_count_body_parts()
@ ED_EMA_DATE_FORMAT_LOCAL
Email.date_sent.
@ ED_EMA_TAGS_TRANSFORMED
Email.tags, driver_tags_get_transformed()
@ ED_EMA_THREAD_HIDDEN_COUNT
Email.collapsed, Email.num_hidden, ...
@ ED_EMA_DATE_FORMAT
Email.date_sent.
@ ED_EMA_THREAD_TAGS
Email.tags.
@ ED_EMA_SIZE
Body.length.
@ ED_EMA_FLAG_CHARS
Email.deleted, Email.attach_del, ...
@ ED_EMA_THREAD_NUMBER
Email, mutt_messages_in_thread()
@ ED_EMA_TO_CHARS
Email, User_is_recipient()
@ ED_EMA_BODY_CHARACTERS
Body.length.
@ ED_EMA_COMBINED_FLAGS
Email.read, Email.old, thread_is_new(), ...
@ ED_EMA_THREAD_COUNT
Email, mutt_messages_in_thread()
@ ED_EMA_STATUS_FLAGS
Email.deleted, Email.attach_del, ...
@ ED_EMA_NUMBER
Email.msgno.
@ ED_EMA_DATE_STRF
Email.date_sent, Email.zhours, Email.zminutes, Email.zoccident.
@ ED_EMA_FROM_LIST
Envelope.to, Envelope.cc.
@ ED_EMA_SCORE
Email.score.
@ ED_EMA_CRYPTO_FLAGS
Email.security, SecurityFlags.
@ ED_EMA_STRF_RECV_LOCAL
Email.received.
@ ED_EMA_LIST_OR_SAVE_FOLDER
Envelope.to, Envelope.cc, check_for_mailing_list()
@ ED_EMA_INDEX_HOOK
Mailbox, Email, mutt_idxfmt_hook()
@ ED_EMA_LINES
Email.lines.
@ ED_EMA_MESSAGE_FLAGS
Email.tagged, Email.flagged.
@ ED_ENV_SUBJECT
Envelope.subject, Envelope.disp_subj.
@ ED_ENV_NEWSGROUP
Envelope.newsgroups.
@ ED_ENV_INITIALS
Envelope.from (first)
@ ED_ENV_FROM_FULL
Envelope.from (all)
@ ED_ENV_X_COMMENT_TO
Envelope.x_comment_to.
@ ED_ENV_FROM
Envelope.from (first)
@ ED_ENV_LIST_ADDRESS
Envelope.to, Envelope.cc.
@ ED_ENV_SPAM
Envelope.spam.
@ ED_ENV_SENDER
Envelope, make_from()
@ ED_ENV_TO_ALL
Envelope.to (all)
@ ED_ENV_X_LABEL
Envelope.x_label.
@ ED_ENV_NAME
Envelope.from (first)
@ ED_ENV_CC_ALL
Envelope.cc.
@ ED_ENV_ORGANIZATION
Envelope.organization.
@ ED_ENV_REPLY_TO
Envelope.reply_to.
@ ED_ENV_LIST_EMPTY
Envelope.to, Envelope.cc.
@ ED_ENV_THREAD_X_LABEL
Envelope.x_label.
@ ED_ENV_MESSAGE_ID
Envelope.message_id.
@ ED_ENV_SENDER_PLAIN
Envelope, make_from()
@ ED_ENV_USERNAME
Envelope.from.
@ ED_ENV_THREAD_TREE
Email.tree.
@ ED_ENV_TO
Envelope.to, Envelope.cc (first)
@ ED_ENV_FIRST_NAME
Envelope.from, Envelope.to, Envelope.cc.
const struct Mapping SortMethods[]
Sort methods for '$sort' for the index.
int sort_validator(const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Validate the "sort" config variable - Implements ConfigDef::validator() -.
int charset_validator(const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Validate the "charset" config variables - Implements ConfigDef::validator() -.
int charset_slist_validator(const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Validate the multiple "charset" config variables - Implements ConfigDef::validator() -.
int debug_level_validator(const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Validate the "debug_level" config variable - Implements ConfigDef::validator() -.
struct ExpandoNode * node_padding_parse(const char *str, struct ExpandoFormat *fmt, int did, int uid, ExpandoParserFlags flags, const char **parsed_until, struct ExpandoParseError *err)
Parse a Padding Expando - Implements ExpandoDefinition::parse() -.
struct ExpandoNode * parse_index_format_hook(const char *str, struct ExpandoFormat *fmt, int did, int uid, ExpandoParserFlags flags, const char **parsed_until, struct ExpandoParseError *err)
Parse an index-hook - Implements ExpandoDefinition::parse() -.
struct ExpandoNode * parse_subject(const char *str, struct ExpandoFormat *fmt, int did, int uid, ExpandoParserFlags flags, const char **parsed_until, struct ExpandoParseError *err)
Parse a Subject Expando - Implements ExpandoDefinition::parse() -.
struct ExpandoNode * parse_index_date_recv_local(const char *str, struct ExpandoFormat *fmt, int did, int uid, ExpandoParserFlags flags, const char **parsed_until, struct ExpandoParseError *err)
Parse a Date Expando - Implements ExpandoDefinition::parse() -.
struct ExpandoNode * parse_index_date_local(const char *str, struct ExpandoFormat *fmt, int did, int uid, ExpandoParserFlags flags, const char **parsed_until, struct ExpandoParseError *err)
Parse a Date Expando - Implements ExpandoDefinition::parse() -.
struct ExpandoNode * parse_index_date(const char *str, struct ExpandoFormat *fmt, int did, int uid, ExpandoParserFlags flags, const char **parsed_until, struct ExpandoParseError *err)
Parse a Date Expando - Implements ExpandoDefinition::parse() -.
struct ExpandoNode * parse_tags_transformed(const char *str, struct ExpandoFormat *fmt, int did, int uid, ExpandoParserFlags flags, const char **parsed_until, struct ExpandoParseError *err)
Parse a Tags-Transformed Expando - Implements ExpandoDefinition::parse() -.
int node_condbool_render(const struct ExpandoNode *node, const struct ExpandoRenderCallback *erc, struct Buffer *buf, int max_cols, void *data, MuttFormatFlags flags)
Callback for every bool node - Implements ExpandoNode::render() -.
Convenience wrapper for the gui headers.
const struct EnumDef UseThreadsTypeDef
Data for the $use_threads enumeration.
@ UT_UNSET
Not yet set by user, stick to legacy semantics.
struct ConfigDef MainVars[]
General Config definitions for NeoMutt.
Convenience wrapper for the library headers.
char * mutt_strn_dup(const char *begin, size_t len)
Duplicate a sub-string.
static const struct ExpandoDefinition *const IndexFormatDefNoPadding
IndexFormatDefNoPadding - Index format definitions, without padding.
static const struct Mapping SortAuxMethods[]
Sort methods for '$sort_aux' for the index.
static const struct ExpandoDefinition AttachFormatDef[]
Expando definitions.
const struct EnumDef MboxTypeDef
Data for the $mbox_type enumeration.
void node_add_child(struct ExpandoNode *node, struct ExpandoNode *child)
Add a child to an ExpandoNode.
void node_free(struct ExpandoNode **ptr)
Free an ExpandoNode and its private data.
@ ENT_CONDBOOL
True/False boolean condition.
struct ExpandoNode * node_conddate_parse(const char *str, int did, int uid, const char **parsed_until, struct ExpandoParseError *err)
Parse a CondDate format string.
struct ExpandoNode * node_container_new(void)
Create a new Container ExpandoNode.
struct ExpandoNode * node_expando_new(struct ExpandoFormat *fmt, int did, int uid)
Create a new Expando ExpandoNode.
struct ExpandoNode * node_expando_parse_enclosure(const char *str, int did, int uid, char terminator, struct ExpandoFormat *fmt, const char **parsed_until, struct ExpandoParseError *err)
Parse an enclosed Expando.
@ MUTT_ASKNO
Ask the user, defaulting to 'No'.
@ MUTT_NO
User answered 'No', or assume 'No'.
@ MUTT_ASKYES
Ask the user, defaulting to 'Yes'.
Definition of a format string.
int uid
Unique ID, e.g. ED_EMA_SIZE.
struct ExpandoFormat * format
Formatting info.
int(* render)(const struct ExpandoNode *node, const struct ExpandoRenderCallback *erc, struct Buffer *buf, int max_cols, void *data, MuttFormatFlags flags)
int did
Domain ID, e.g. ED_EMAIL.
const char * text
Node-specific text.
enum ExpandoNodeType type
Type of Node, e.g. ENT_EXPANDO.
Buffer for parsing errors.
char message[1024]
Error message.
const char * position
Position of error in original string.
Mapping between user-readable string and a constant.
#define D_CHARSET_SINGLE
Flag for charset_validator to allow only one charset.
#define D_SLIST_SEP_COLON
Slist items are colon-separated.
#define D_INTERNAL_DEPRECATED
Config item shouldn't be used any more.
#define D_STRING_COMMAND
A command.
#define D_SLIST_ALLOW_EMPTY
Slist may be empty.
#define D_PATH_DIR
Path is a directory.
#define D_CHARSET_STRICT
Flag for charset_validator to use strict char check.
#define D_PATH_FILE
Path is a file.
@ DT_SLIST
a list of strings
@ DT_QUAD
quad-option (no/yes/ask-no/ask-yes)
@ DT_SYNONYM
synonym for another variable
@ DT_ADDRESS
e-mail address
@ DT_REGEX
regular expressions
@ DT_PATH
a path to a file/directory
#define D_STRING_MAILBOX
Don't perform path expansions.
#define D_SORT_LAST
Sort flag for -last prefix.
#define D_SORT_REVERSE
Sort flag for -reverse prefix.
#define D_NOT_EMPTY
Empty strings are not allowed.
#define D_INTEGER_NOT_NEGATIVE
Negative numbers are not allowed.
#define D_ON_STARTUP
May only be set at startup.
@ ED_GLO_PADDING_EOL
Padding to end-of-line.
@ ED_GLO_PADDING_HARD
Hard Padding.
@ ED_GLO_PADDING_SOFT
Soft Padding.