NeoMutt  2020-06-26-250-g349c94
Teaching an old dog new tricks
DOXYGEN
mutt_config.c
Go to the documentation of this file.
1 
30 #include "config.h"
31 #include <stddef.h>
32 #include <stdbool.h>
33 #include "mutt/lib.h"
34 #include "address/lib.h"
35 #include "config/lib.h"
36 #include "email/lib.h"
37 #include "core/lib.h"
38 #include "alias/lib.h"
39 #include "gui/lib.h"
40 #include "browser.h"
41 #include "commands.h"
42 #include "compose.h"
43 #include "handler.h"
44 #include "hdrline.h"
45 #include "hook.h"
46 #include "index.h"
47 #include "init.h"
48 #include "mailcap.h"
49 #include "main.h"
50 #include "mutt_globals.h"
51 #include "mutt_logging.h"
52 #include "mutt_mailbox.h"
53 #include "mutt_menu.h"
54 #include "mutt_thread.h"
55 #include "muttlib.h"
56 #include "mx.h"
57 #include "pager.h"
58 #include "progress.h"
59 #include "recvattach.h"
60 #include "recvcmd.h"
61 #include "remailer.h"
62 #include "rfc3676.h"
63 #include "score.h"
64 #include "sort.h"
65 #include "status.h"
66 #include "bcache/lib.h"
67 
68 #ifndef ISPELL
69 #define ISPELL "ispell"
70 #endif
71 
72 /* These options are deprecated */
73 char *C_Escape = NULL;
75 
76 struct ConfigDef MainVars[] = {
77  // clang-format off
78  { "abort_backspace", DT_BOOL, &C_AbortBackspace, true, 0, NULL,
79  "Hitting backspace against an empty prompt aborts the prompt"
80  },
81  { "abort_key", DT_STRING|DT_NOT_EMPTY, &C_AbortKey, IP "\007", 0, NULL,
82  "String representation of key to abort prompts"
83  },
84  { "alias_file", DT_PATH|DT_PATH_FILE, &C_AliasFile, IP "~/.neomuttrc", 0, NULL,
85  "Save new aliases to this file"
86  },
87  { "alias_format", DT_STRING|DT_NOT_EMPTY, &C_AliasFormat, IP "%3n %f%t %-15a %-56r | %c", 0, NULL,
88  "printf-like format string for the alias menu"
89  },
90  { "allow_ansi", DT_BOOL, &C_AllowAnsi, false, 0, NULL,
91  "Allow ANSI colour codes in rich text messages"
92  },
93  { "arrow_cursor", DT_BOOL|R_MENU, &C_ArrowCursor, false, 0, NULL,
94  "Use an arrow '->' instead of highlighting in the index"
95  },
96  { "arrow_string", DT_STRING|DT_NOT_EMPTY, &C_ArrowString, IP "->", 0, NULL,
97  "Use an custom string for arrow_cursor"
98  },
99  { "ascii_chars", DT_BOOL|R_INDEX|R_PAGER, &C_AsciiChars, false, 0, NULL,
100  "Use plain ASCII characters, when drawing email threads"
101  },
102  { "askbcc", DT_BOOL, &C_Askbcc, false, 0, NULL,
103  "Ask the user for the blind-carbon-copy recipients"
104  },
105  { "askcc", DT_BOOL, &C_Askcc, false, 0, NULL,
106  "Ask the user for the carbon-copy recipients"
107  },
108  { "assumed_charset", DT_STRING, &C_AssumedCharset, 0, 0, charset_validator,
109  "If a message is missing a character set, assume this character set"
110  },
111  { "attach_format", DT_STRING|DT_NOT_EMPTY, &C_AttachFormat, IP "%u%D%I %t%4n %T%.40d%> [%.7m/%.10M, %.6e%?C?, %C?, %s] ", 0, NULL,
112  "printf-like format string for the attachment menu"
113  },
114  { "attach_save_dir", DT_PATH|DT_PATH_DIR, &C_AttachSaveDir, IP "./", 0, NULL,
115  "Default directory where attachments are saved"
116  },
117  { "attach_save_without_prompting", DT_BOOL, &C_AttachSaveWithoutPrompting, false, 0, NULL,
118  "If true, then don't prompt to save"
119  },
120  { "attach_sep", DT_STRING, &C_AttachSep, IP "\n", 0, NULL,
121  "Separator to add between saved/printed/piped attachments"
122  },
123  { "attach_split", DT_BOOL, &C_AttachSplit, true, 0, NULL,
124  "Save/print/pipe tagged messages individually"
125  },
126  { "attribution", DT_STRING, &C_Attribution, IP "On %d, %n wrote:", 0, NULL,
127  "Message to start a reply, 'On DATE, PERSON wrote:'"
128  },
129  { "attribution_locale", DT_STRING, &C_AttributionLocale, 0, 0, NULL,
130  "Locale for dates in the attribution message"
131  },
132  { "auto_subscribe", DT_BOOL, &C_AutoSubscribe, false, 0, NULL,
133  "Automatically check if the user is subscribed to a mailing list"
134  },
135  { "auto_tag", DT_BOOL, &C_AutoTag, false, 0, NULL,
136  "Automatically apply actions to all tagged messages"
137  },
138  { "autoedit", DT_BOOL, &C_Autoedit, false, 0, NULL,
139  "Skip the initial compose menu and edit the email"
140  },
141  { "beep", DT_BOOL, &C_Beep, true, 0, NULL,
142  "Make a noise when an error occurs"
143  },
144  { "beep_new", DT_BOOL, &C_BeepNew, false, 0, NULL,
145  "Make a noise when new mail arrives"
146  },
147  { "bounce", DT_QUAD, &C_Bounce, MUTT_ASKYES, 0, NULL,
148  "Confirm before bouncing a message"
149  },
150  { "braille_friendly", DT_BOOL, &C_BrailleFriendly, false, 0, NULL,
151  "Move the cursor to the beginning of the line"
152  },
153  { "browser_abbreviate_mailboxes", DT_BOOL, &C_BrowserAbbreviateMailboxes, true, 0, NULL,
154  "Abbreviate mailboxes using '~' and '=' in the browser"
155  },
156  { "change_folder_next", DT_BOOL, &C_ChangeFolderNext, false, 0, NULL,
157  "Suggest the next folder, rather than the first when using '<change-folder>'"
158  },
159  { "charset", DT_STRING|DT_NOT_EMPTY, &C_Charset, 0, 0, charset_validator,
160  "Default character set for displaying text on screen"
161  },
162  { "collapse_all", DT_BOOL, &C_CollapseAll, false, 0, NULL,
163  "Collapse all threads when entering a folder"
164  },
165  { "collapse_flagged", DT_BOOL, &C_CollapseFlagged, true, 0, NULL,
166  "Prevent the collapse of threads with flagged emails"
167  },
168  { "collapse_unread", DT_BOOL, &C_CollapseUnread, true, 0, NULL,
169  "Prevent the collapse of threads with unread emails"
170  },
171  { "compose_format", DT_STRING|R_MENU, &C_ComposeFormat, IP "-- NeoMutt: Compose [Approx. msg size: %l Atts: %a]%>-", 0, NULL,
172  "printf-like format string for the Compose panel's status bar"
173  },
174  { "config_charset", DT_STRING, &C_ConfigCharset, 0, 0, charset_validator,
175  "Character set that the config files are in"
176  },
177  { "confirmappend", DT_BOOL, &C_Confirmappend, true, 0, NULL,
178  "Confirm before appending emails to a mailbox"
179  },
180  { "confirmcreate", DT_BOOL, &C_Confirmcreate, true, 0, NULL,
181  "Confirm before creating a new mailbox"
182  },
183  { "copy", DT_QUAD, &C_Copy, MUTT_YES, 0, NULL,
184  "Save outgoing emails to $record"
185  },
186  { "copy_decode_weed", DT_BOOL, &C_CopyDecodeWeed, false, 0, NULL,
187  "Controls whether to weed headers when copying or saving emails"
188  },
189  { "crypt_chars", DT_MBTABLE|R_INDEX|R_PAGER, &C_CryptChars, IP "SPsK ", 0, NULL,
190  "User-configurable crypto flags: signed, encrypted etc."
191  },
192  { "date_format", DT_STRING|DT_NOT_EMPTY|R_MENU, &C_DateFormat, IP "!%a, %b %d, %Y at %I:%M:%S%p %Z", 0, NULL,
193  "strftime format string for the `%d` expando"
194  },
195  { "debug_file", DT_PATH|DT_PATH_FILE, &C_DebugFile, IP "~/.neomuttdebug", 0, NULL,
196  "File to save debug logs"
197  },
198  { "debug_level", DT_NUMBER, &C_DebugLevel, 0, 0, level_validator,
199  "Logging level for debug logs"
200  },
201  { "default_hook", DT_STRING, &C_DefaultHook, IP "~f %s !~P | (~P ~C %s)", 0, NULL,
202  "Pattern to use for hooks that only have a simple regex"
203  },
204  { "delete", DT_QUAD, &C_Delete, MUTT_ASKYES, 0, NULL,
205  "Really delete messages, when the mailbox is closed"
206  },
207  { "delete_untag", DT_BOOL, &C_DeleteUntag, true, 0, NULL,
208  "Untag messages when they are marked for deletion"
209  },
210  { "digest_collapse", DT_BOOL, &C_DigestCollapse, true, 0, NULL,
211  "Hide the subparts of a multipart/digest"
212  },
213  { "display_filter", DT_STRING|DT_COMMAND|R_PAGER, &C_DisplayFilter, 0, 0, NULL,
214  "External command to pre-process an email before display"
215  },
216  { "duplicate_threads", DT_BOOL|R_RESORT|R_RESORT_INIT|R_INDEX, &C_DuplicateThreads, true, 0, pager_validator,
217  "Highlight messages with duplicated message IDs"
218  },
219  { "edit_headers", DT_BOOL, &C_EditHeaders, false, 0, NULL,
220  "Let the user edit the email headers whilst editing an email"
221  },
222  { "editor", DT_STRING|DT_NOT_EMPTY|DT_COMMAND, &C_Editor, IP "vi", 0, NULL,
223  "External command to use as an email editor"
224  },
225  { "flag_chars", DT_MBTABLE|R_INDEX|R_PAGER, &C_FlagChars, IP "*!DdrONon- ", 0, NULL,
226  "User-configurable index flags: tagged, new, etc"
227  },
228  { "flag_safe", DT_BOOL, &C_FlagSafe, false, 0, NULL,
229  "Protect flagged messages from deletion"
230  },
231  { "folder", DT_STRING|DT_MAILBOX, &C_Folder, IP "~/Mail", 0, NULL,
232  "Base folder for a set of mailboxes"
233  },
234  { "folder_format", DT_STRING|DT_NOT_EMPTY|R_MENU, &C_FolderFormat, IP "%2C %t %N %F %2l %-8.8u %-8.8g %8s %d %i", 0, NULL,
235  "printf-like format string for the browser's display of folders"
236  },
237  { "force_name", DT_BOOL, &C_ForceName, false, 0, NULL,
238  "Save outgoing mail in a folder of their name"
239  },
240  { "forward_attachments", DT_QUAD, &C_ForwardAttachments, MUTT_ASKYES, 0, NULL,
241  "Forward attachments when forwarding a message"
242  },
243  { "forward_decode", DT_BOOL, &C_ForwardDecode, true, 0, NULL,
244  "Decode the message when forwarding it"
245  },
246  { "forward_quote", DT_BOOL, &C_ForwardQuote, false, 0, NULL,
247  "Automatically quote a forwarded message using #C_IndentString"
248  },
249  { "from", DT_ADDRESS, &C_From, 0, 0, NULL,
250  "Default 'From' address to use, if isn't otherwise set"
251  },
252  { "from_chars", DT_MBTABLE|R_INDEX|R_PAGER, &C_FromChars, 0, 0, NULL,
253  "User-configurable index flags: to address, cc address, etc"
254  },
255  { "gecos_mask", DT_REGEX, &C_GecosMask, IP "^[^,]*", 0, NULL,
256  "Regex for parsing GECOS field of /etc/passwd"
257  },
258  { "header", DT_BOOL, &C_Header, false, 0, NULL,
259  "Include the message headers in the reply email (Weed applies)"
260  },
261  { "header_color_partial", DT_BOOL|R_PAGER_FLOW, &C_HeaderColorPartial, false, 0, NULL,
262  "Only colour the part of the header matching the regex"
263  },
264  { "hidden_tags", DT_SLIST|SLIST_SEP_COMMA, &C_HiddenTags, IP "unread,draft,flagged,passed,replied,attachment,signed,encrypted", 0, NULL,
265  "Tags that shouldn't be displayed on screen"
266  },
267  { "hide_limited", DT_BOOL|R_TREE|R_INDEX, &C_HideLimited, false, 0, NULL,
268  "Don't indicate hidden messages, in the thread tree"
269  },
270  { "hide_missing", DT_BOOL|R_TREE|R_INDEX, &C_HideMissing, true, 0, NULL,
271  "Don't indicate missing messages, in the thread tree"
272  },
273  { "hide_thread_subject", DT_BOOL|R_TREE|R_INDEX, &C_HideThreadSubject, true, 0, NULL,
274  "Hide subjects that are similar to that of the parent message"
275  },
276  { "hide_top_limited", DT_BOOL|R_TREE|R_INDEX, &C_HideTopLimited, false, 0, NULL,
277  "Don't indicate hidden top message, in the thread tree"
278  },
279  { "hide_top_missing", DT_BOOL|R_TREE|R_INDEX, &C_HideTopMissing, true, 0, NULL,
280  "Don't indicate missing top message, in the thread tree"
281  },
282  { "honor_disposition", DT_BOOL, &C_HonorDisposition, false, 0, NULL,
283  "Don't display MIME parts inline if they have a disposition of 'attachment'"
284  },
285  { "hostname", DT_STRING, &C_Hostname, 0, 0, NULL,
286  "Fully-qualified domain name of this machine"
287  },
288 #ifdef HAVE_LIBIDN
289  { "idn_decode", DT_BOOL|R_MENU, &C_IdnDecode, true, 0, NULL,
290  "(idn) Decode international domain names"
291  },
292  { "idn_encode", DT_BOOL|R_MENU, &C_IdnEncode, true, 0, NULL,
293  "(idn) Encode international domain names"
294  },
295 #endif
296  { "implicit_autoview", DT_BOOL, &C_ImplicitAutoview, false, 0, NULL,
297  "Display MIME attachments inline if a 'copiousoutput' mailcap entry exists"
298  },
299  { "include_encrypted", DT_BOOL, &C_IncludeEncrypted, false, 0, NULL,
300  "Whether to include encrypted content when replying"
301  },
302  { "include_onlyfirst", DT_BOOL, &C_IncludeOnlyfirst, false, 0, NULL,
303  "Only include the first attachment when replying"
304  },
305  { "indent_string", DT_STRING, &C_IndentString, IP "> ", 0, NULL,
306  "String used to indent 'reply' text"
307  },
308  { "index_format", DT_STRING|DT_NOT_EMPTY|R_INDEX|R_PAGER, &C_IndexFormat, IP "%4C %Z %{%b %d} %-15.15L (%?l?%4l&%4c?) %s", 0, NULL,
309  "printf-like format string for the index menu (emails)"
310  },
311  { "ispell", DT_STRING|DT_COMMAND, &C_Ispell, IP ISPELL, 0, NULL,
312  "External command to perform spell-checking"
313  },
314  { "keep_flagged", DT_BOOL, &C_KeepFlagged, false, 0, NULL,
315  "Don't move flagged messages from #C_Spoolfile to #C_Mbox"
316  },
317  { "mail_check", DT_NUMBER|DT_NOT_NEGATIVE, &C_MailCheck, 5, 0, NULL,
318  "Number of seconds before NeoMutt checks for new mail"
319  },
320  { "mail_check_recent", DT_BOOL, &C_MailCheckRecent, true, 0, NULL,
321  "Notify the user about new mail since the last time the mailbox was opened"
322  },
323  { "mail_check_stats", DT_BOOL, &C_MailCheckStats, false, 0, NULL,
324  "Periodically check for new mail"
325  },
326  { "mail_check_stats_interval", DT_NUMBER|DT_NOT_NEGATIVE, &C_MailCheckStatsInterval, 60, 0, NULL,
327  "How often to check for new mail"
328  },
329  { "mailcap_path", DT_SLIST|SLIST_SEP_COLON, &C_MailcapPath, IP "~/.mailcap:" PKGDATADIR "/mailcap:" SYSCONFDIR "/mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap", 0, NULL,
330  "Colon-separated list of mailcap files"
331  },
332  { "mailcap_sanitize", DT_BOOL, &C_MailcapSanitize, true, 0, NULL,
333  "Restrict the possible characters in mailcap expandos"
334  },
335  { "mark_macro_prefix", DT_STRING, &C_MarkMacroPrefix, IP "'", 0, NULL,
336  "Prefix for macros using '<mark-message>'"
337  },
338  { "mark_old", DT_BOOL|R_INDEX|R_PAGER, &C_MarkOld, true, 0, NULL,
339  "Mark new emails as old when leaving the mailbox"
340  },
341  { "markers", DT_BOOL|R_PAGER_FLOW, &C_Markers, true, 0, NULL,
342  "Display a '+' at the beginning of wrapped lines in the pager"
343  },
344  { "mask", DT_REGEX|DT_REGEX_MATCH_CASE|DT_REGEX_ALLOW_NOT|DT_REGEX_NOSUB, &C_Mask, IP "!^\\.[^.]", 0, NULL,
345  "Only display files/dirs matching this regex in the browser"
346  },
347  { "mbox", DT_STRING|DT_MAILBOX|R_INDEX|R_PAGER, &C_Mbox, IP "~/mbox", 0, NULL,
348  "Folder that receives read emails (see Move)"
349  },
350  { "mbox_type", DT_ENUM, &C_MboxType, MUTT_MBOX, IP &MboxTypeDef, NULL,
351  "Default type for creating new mailboxes"
352  },
353  { "menu_context", DT_NUMBER|DT_NOT_NEGATIVE, &C_MenuContext, 0, 0, NULL,
354  "Number of lines of overlap when changing pages in the index"
355  },
356  { "menu_move_off", DT_BOOL, &C_MenuMoveOff, true, 0, NULL,
357  "Allow the last menu item to move off the bottom of the screen"
358  },
359  { "menu_scroll", DT_BOOL, &C_MenuScroll, false, 0, NULL,
360  "Scroll the menu/index by one line, rather than a page"
361  },
362  { "message_cache_clean", DT_BOOL, &C_MessageCacheClean, false, 0, NULL,
363  "(imap/pop) Clean out obsolete entries from the message cache"
364  },
365  { "message_cachedir", DT_PATH|DT_PATH_DIR, &C_MessageCachedir, 0, 0, NULL,
366  "(imap/pop) Directory for the message cache"
367  },
368  { "message_format", DT_STRING|DT_NOT_EMPTY, &C_MessageFormat, IP "%s", 0, NULL,
369  "printf-like format string for listing attached messages"
370  },
371  { "meta_key", DT_BOOL, &C_MetaKey, false, 0, NULL,
372  "Interpret 'ALT-x' as 'ESC-x'"
373  },
374  { "mime_forward", DT_QUAD, &C_MimeForward, MUTT_NO, 0, NULL,
375  "Forward a message as a 'message/RFC822' MIME part"
376  },
377  { "mime_forward_rest", DT_QUAD, &C_MimeForwardRest, MUTT_YES, 0, NULL,
378  "Forward all attachments, even if they can't be decoded"
379  },
380 #ifdef MIXMASTER
381  { "mix_entry_format", DT_STRING|DT_NOT_EMPTY, &C_MixEntryFormat, IP "%4n %c %-16s %a", 0, NULL,
382  "(mixmaster) printf-like format string for the mixmaster chain"
383  },
384  { "mixmaster", DT_STRING|DT_COMMAND, &C_Mixmaster, IP MIXMASTER, 0, NULL,
385  "(mixmaster) External command to route a mixmaster message"
386  },
387 #endif
388  { "move", DT_QUAD, &C_Move, MUTT_NO, 0, NULL,
389  "Move emails from #C_Spoolfile to #C_Mbox when read"
390  },
391  { "narrow_tree", DT_BOOL|R_TREE|R_INDEX, &C_NarrowTree, false, 0, NULL,
392  "Draw a narrower thread tree in the index"
393  },
394  { "net_inc", DT_NUMBER|DT_NOT_NEGATIVE, &C_NetInc, 10, 0, NULL,
395  "(socket) Update the progress bar after this many KB sent/received (0 to disable)"
396  },
397  { "new_mail_command", DT_STRING|DT_COMMAND, &C_NewMailCommand, 0, 0, NULL,
398  "External command to run when new mail arrives"
399  },
400  { "pager", DT_STRING|DT_COMMAND, &C_Pager, IP "builtin", 0, NULL,
401  "External command for viewing messages, or 'builtin' to use NeoMutt's"
402  },
403  { "pager_context", DT_NUMBER|DT_NOT_NEGATIVE, &C_PagerContext, 0, 0, NULL,
404  "Number of lines of overlap when changing pages in the pager"
405  },
406  { "pager_format", DT_STRING|R_PAGER, &C_PagerFormat, IP "-%Z- %C/%m: %-20.20n %s%* -- (%P)", 0, NULL,
407  "printf-like format string for the pager's status bar"
408  },
409  { "pager_index_lines", DT_NUMBER|DT_NOT_NEGATIVE|R_PAGER|R_REFLOW, &C_PagerIndexLines, 0, 0, NULL,
410  "Number of index lines to display above the pager"
411  },
412  { "pager_stop", DT_BOOL, &C_PagerStop, false, 0, NULL,
413  "Don't automatically open the next message when at the end of a message"
414  },
415  { "pipe_decode", DT_BOOL, &C_PipeDecode, false, 0, NULL,
416  "Decode the message when piping it"
417  },
418  { "pipe_decode_weed", DT_BOOL, &C_PipeDecodeWeed, true, 0, NULL,
419  "Control whether to weed headers when piping an email"
420  },
421  { "pipe_sep", DT_STRING, &C_PipeSep, IP "\n", 0, NULL,
422  "Separator to add between multiple piped messages"
423  },
424  { "pipe_split", DT_BOOL, &C_PipeSplit, false, 0, NULL,
425  "Run the pipe command on each message separately"
426  },
427  { "postpone", DT_QUAD, &C_Postpone, MUTT_ASKYES, 0, NULL,
428  "Save messages to the #C_Postponed folder"
429  },
430  { "postponed", DT_STRING|DT_MAILBOX|R_INDEX, &C_Postponed, IP "~/postponed", 0, NULL,
431  "Folder to store postponed messages"
432  },
433  { "preferred_languages", DT_SLIST|SLIST_SEP_COMMA, &C_PreferredLanguages, 0, 0, NULL,
434  "Preferred languages for multilingual MIME"
435  },
436  { "print", DT_QUAD, &C_Print, MUTT_ASKNO, 0, NULL,
437  "Confirm before printing a message"
438  },
439  { "print_command", DT_STRING|DT_COMMAND, &C_PrintCommand, IP "lpr", 0, NULL,
440  "External command to print a message"
441  },
442  { "print_decode", DT_BOOL, &C_PrintDecode, true, 0, NULL,
443  "Decode message before printing it"
444  },
445  { "print_decode_weed", DT_BOOL, &C_PrintDecodeWeed, true, 0, NULL,
446  "Control whether to weed headers when printing an email "
447  },
448  { "print_split", DT_BOOL, &C_PrintSplit, false, 0, NULL,
449  "Print multiple messages separately"
450  },
451  { "prompt_after", DT_BOOL, &C_PromptAfter, true, 0, NULL,
452  "Pause after running an external pager"
453  },
454  { "query_command", DT_STRING|DT_COMMAND, &C_QueryCommand, 0, 0, NULL,
455  "External command to query and external address book"
456  },
457  { "query_format", DT_STRING|DT_NOT_EMPTY, &C_QueryFormat, IP "%3c %t %-25.25n %-25.25a | %e", 0, NULL,
458  "printf-like format string for the query menu (address book)"
459  },
460  { "quit", DT_QUAD, &C_Quit, MUTT_YES, 0, NULL,
461  "Prompt before exiting NeoMutt"
462  },
463  { "quote_regex", DT_REGEX|R_PAGER, &C_QuoteRegex, IP "^([ \t]*[|>:}#])+", 0, NULL,
464  "Regex to match quoted text in a reply"
465  },
466  { "read_inc", DT_NUMBER|DT_NOT_NEGATIVE, &C_ReadInc, 10, 0, NULL,
467  "Update the progress bar after this many records read (0 to disable)"
468  },
469  { "read_only", DT_BOOL, &C_ReadOnly, false, 0, NULL,
470  "Open folders in read-only mode"
471  },
472  { "realname", DT_STRING|R_INDEX|R_PAGER, &C_Realname, 0, 0, NULL,
473  "Real name of the user"
474  },
475  { "record", DT_STRING|DT_MAILBOX, &C_Record, IP "~/sent", 0, NULL,
476  "Folder to save 'sent' messages"
477  },
478  { "reflow_space_quotes", DT_BOOL, &C_ReflowSpaceQuotes, true, 0, NULL,
479  "Insert spaces into reply quotes for 'format=flowed' messages"
480  },
481  { "reflow_text", DT_BOOL, &C_ReflowText, true, 0, NULL,
482  "Reformat paragraphs of 'format=flowed' text"
483  },
484  { "reflow_wrap", DT_NUMBER, &C_ReflowWrap, 78, 0, NULL,
485  "Maximum paragraph width for reformatting 'format=flowed' text"
486  },
487  { "reply_regex", DT_REGEX|R_INDEX|R_RESORT, &C_ReplyRegex, IP "^((re|aw|sv)(\\[[0-9]+\\])*:[ \t]*)*", 0, reply_validator,
488  "Regex to match message reply subjects like 're: '"
489  },
490  { "resolve", DT_BOOL, &C_Resolve, true, 0, NULL,
491  "Move to the next email whenever a command modifies an email"
492  },
493  { "resume_draft_files", DT_BOOL, &C_ResumeDraftFiles, false, 0, NULL,
494  "Process draft files like postponed messages"
495  },
496  { "resume_edited_draft_files", DT_BOOL, &C_ResumeEditedDraftFiles, true, 0, NULL,
497  "Resume editing previously saved draft files"
498  },
499  { "reverse_alias", DT_BOOL|R_INDEX|R_PAGER, &C_ReverseAlias, false, 0, NULL,
500  "Display the alias in the index, rather than the message's sender"
501  },
502  { "rfc2047_parameters", DT_BOOL, &C_Rfc2047Parameters, false, 0, NULL,
503  "Decode RFC2047-encoded MIME parameters"
504  },
505  { "save_address", DT_BOOL, &C_SaveAddress, false, 0, NULL,
506  "Use sender's full address as a default save folder"
507  },
508  { "save_empty", DT_BOOL, &C_SaveEmpty, true, 0, NULL,
509  "(mbox,mmdf) Preserve empty mailboxes"
510  },
511  { "save_name", DT_BOOL, &C_SaveName, false, 0, NULL,
512  "Save outgoing message to mailbox of recipient's name if it exists"
513  },
514  { "score", DT_BOOL, &C_Score, true, 0, NULL,
515  "Use message scoring"
516  },
517  { "score_threshold_delete", DT_NUMBER, &C_ScoreThresholdDelete, -1, 0, NULL,
518  "Messages with a lower score will be automatically deleted"
519  },
520  { "score_threshold_flag", DT_NUMBER, &C_ScoreThresholdFlag, 9999, 0, NULL,
521  "Messages with a greater score will be automatically flagged"
522  },
523  { "score_threshold_read", DT_NUMBER, &C_ScoreThresholdRead, -1, 0, NULL,
524  "Messages with a lower score will be automatically marked read"
525  },
526  { "search_context", DT_NUMBER|DT_NOT_NEGATIVE, &C_SearchContext, 0, 0, NULL,
527  "Context to display around search matches"
528  },
529  { "send_charset", DT_STRING, &C_SendCharset, IP "us-ascii:iso-8859-1:utf-8", 0, charset_validator,
530  "Character sets for outgoing mail"
531  },
532  { "shell", DT_STRING|DT_COMMAND, &C_Shell, IP "/bin/sh", 0, NULL,
533  "External command to run subshells in"
534  },
535  { "show_multipart_alternative", DT_STRING, &C_ShowMultipartAlternative, 0, 0, multipart_validator,
536  "How to display 'multipart/alternative' MIME parts"
537  },
538  { "simple_search", DT_STRING, &C_SimpleSearch, IP "~f %s | ~s %s", 0, NULL,
539  "Pattern to search for when search doesn't contain ~'s"
540  },
541  { "size_show_bytes", DT_BOOL|R_MENU, &C_SizeShowBytes, false, 0, NULL,
542  "Show smaller sizes in bytes"
543  },
544  { "size_show_fractions", DT_BOOL|R_MENU, &C_SizeShowFractions, true, 0, NULL,
545  "Show size fractions with a single decimal place"
546  },
547  { "size_show_mb", DT_BOOL|R_MENU, &C_SizeShowMb, true, 0, NULL,
548  "Show sizes in megabytes for sizes greater than 1 megabyte"
549  },
550  { "size_units_on_left", DT_BOOL|R_MENU, &C_SizeUnitsOnLeft, false, 0, NULL,
551  "Show the units as a prefix to the size"
552  },
553  { "skip_quoted_offset", DT_NUMBER|DT_NOT_NEGATIVE, &C_SkipQuotedOffset, 0, 0, NULL,
554  "Lines of context to show when skipping quoted text"
555  },
556  { "sleep_time", DT_NUMBER|DT_NOT_NEGATIVE, &C_SleepTime, 1, 0, NULL,
557  "Time to pause after certain info messages"
558  },
559  { "smart_wrap", DT_BOOL|R_PAGER_FLOW, &C_SmartWrap, true, 0, NULL,
560  "Wrap text at word boundaries"
561  },
562  { "smileys", DT_REGEX|R_PAGER, &C_Smileys, IP "(>From )|(:[-^]?[][)(><}{|/DP])", 0, NULL,
563  "Regex to match smileys to prevent mistakes when quoting text"
564  },
566  "Sort method for the index"
567  },
568  { "sort_alias", DT_SORT|DT_SORT_ALIAS, &C_SortAlias, SORT_ALIAS, 0, NULL,
569  "Sort method for the alias menu"
570  },
572  "Secondary sort method for the index"
573  },
574  { "sort_browser", DT_SORT|DT_SORT_BROWSER, &C_SortBrowser, SORT_ALPHA, 0, NULL,
575  "Sort method for the browser"
576  },
578  "Sort method for the sidebar"
579  },
580  { "spam_separator", DT_STRING, &C_SpamSeparator, IP ",", 0, NULL,
581  "Separator for multiple spam headers"
582  },
583  { "spoolfile", DT_STRING|DT_MAILBOX, &C_Spoolfile, 0, 0, NULL,
584  "Inbox"
585  },
586  { "status_chars", DT_MBTABLE|R_INDEX|R_PAGER, &C_StatusChars, IP "-*%A", 0, NULL,
587  "Indicator characters for the status bar"
588  },
589  { "status_format", DT_STRING|R_INDEX|R_PAGER, &C_StatusFormat, IP "-%r-NeoMutt: %D [Msgs:%?M?%M/?%m%?n? New:%n?%?o? Old:%o?%?d? Del:%d?%?F? Flag:%F?%?t? Tag:%t?%?p? Post:%p?%?b? Inc:%b?%?l? %l?]---(%s/%S)-%>-(%P)---", 0, NULL,
590  "printf-like format string for the index's status line"
591  },
592  { "status_on_top", DT_BOOL|R_REFLOW, &C_StatusOnTop, false, 0, NULL,
593  "Display the status bar at the top"
594  },
595  { "strict_threads", DT_BOOL|R_RESORT|R_RESORT_INIT|R_INDEX, &C_StrictThreads, false, 0, pager_validator,
596  "Thread messages using 'In-Reply-To' and 'References' headers"
597  },
598  { "suspend", DT_BOOL, &C_Suspend, true, 0, NULL,
599  "Allow the user to suspend NeoMutt using '^Z'"
600  },
601  { "text_flowed", DT_BOOL, &C_TextFlowed, false, 0, NULL,
602  "Generate 'format=flowed' messages"
603  },
604  { "thread_received", DT_BOOL|R_RESORT|R_RESORT_INIT|R_INDEX, &C_ThreadReceived, false, 0, pager_validator,
605  "Sort threaded messages by their received date"
606  },
607  { "tilde", DT_BOOL|R_PAGER, &C_Tilde, false, 0, NULL,
608  "Character to pad blank lines in the pager"
609  },
610  { "time_inc", DT_NUMBER|DT_NOT_NEGATIVE, &C_TimeInc, 0, 0, NULL,
611  "Frequency of progress bar updates (milliseconds)"
612  },
613  { "timeout", DT_NUMBER|DT_NOT_NEGATIVE, &C_Timeout, 600, 0, NULL,
614  "Time to wait for user input in menus"
615  },
616  { "tmpdir", DT_PATH|DT_PATH_DIR|DT_NOT_EMPTY, &C_Tmpdir, IP "/tmp", 0, NULL,
617  "Directory for temporary files"
618  },
619  { "toggle_quoted_show_levels", DT_NUMBER|DT_NOT_NEGATIVE, &C_ToggleQuotedShowLevels, 0, 0, NULL,
620  "Number of quote levels to show with toggle-quoted"
621  },
622  { "to_chars", DT_MBTABLE|R_INDEX|R_PAGER, &C_ToChars, IP " +TCFLR", 0, NULL,
623  "Indicator characters for the 'To' field in the index"
624  },
625  { "trash", DT_STRING|DT_MAILBOX, &C_Trash, 0, 0, NULL,
626  "Folder to put deleted emails"
627  },
628  { "ts_enabled", DT_BOOL|R_INDEX|R_PAGER, &C_TsEnabled, false, 0, NULL,
629  "Allow NeoMutt to set the terminal status line and icon"
630  },
631  { "ts_icon_format", DT_STRING|R_INDEX|R_PAGER, &C_TsIconFormat, IP "M%?n?AIL&ail?", 0, NULL,
632  "printf-like format string for the terminal's icon title"
633  },
634  { "ts_status_format", DT_STRING|R_INDEX|R_PAGER, &C_TsStatusFormat, IP "NeoMutt with %?m?%m messages&no messages?%?n? [%n NEW]?", 0, NULL,
635  "printf-like format string for the terminal's status (window title)"
636  },
637  { "uncollapse_jump", DT_BOOL, &C_UncollapseJump, false, 0, NULL,
638  "When opening a thread, jump to the next unread message"
639  },
640  { "uncollapse_new", DT_BOOL, &C_UncollapseNew, true, 0, NULL,
641  "Open collapsed threads when new mail arrives"
642  },
643  { "use_domain", DT_BOOL, &C_UseDomain, true, 0, NULL,
644  "Qualify local addresses using this domain"
645  },
646  { "visual", DT_STRING|DT_COMMAND, &C_Visual, IP "vi", 0, NULL,
647  "Editor to use when '~v' is given in the built-in editor"
648  },
649  { "wait_key", DT_BOOL, &C_WaitKey, true, 0, NULL,
650  "Prompt to press a key after running external commands"
651  },
652  { "weed", DT_BOOL, &C_Weed, true, 0, NULL,
653  "Filter headers when displaying/forwarding/printing/replying"
654  },
655  { "wrap", DT_NUMBER|R_PAGER_FLOW, &C_Wrap, 0, 0, NULL,
656  "Width to wrap text in the pager"
657  },
658  { "wrap_search", DT_BOOL, &C_WrapSearch, true, 0, NULL,
659  "Wrap around when the search hits the end"
660  },
661  { "write_bcc", DT_BOOL, &C_WriteBcc, false, 0, NULL,
662  "Write out the 'Bcc' field when preparing to send a mail"
663  },
664  { "write_inc", DT_NUMBER|DT_NOT_NEGATIVE, &C_WriteInc, 10, 0, NULL,
665  "Update the progress bar after this many records written (0 to disable)"
666  },
667 
668  { "escape", DT_DEPRECATED|DT_STRING, &C_Escape, IP "~" },
669  { "ignore_linear_white_space", DT_DEPRECATED|DT_BOOL, &C_IgnoreLinearWhiteSpace, false },
670 
671  { "edit_hdrs", DT_SYNONYM, NULL, IP "edit_headers", },
672  { "forw_decode", DT_SYNONYM, NULL, IP "forward_decode", },
673  { "forw_quote", DT_SYNONYM, NULL, IP "forward_quote", },
674  { "hdr_format", DT_SYNONYM, NULL, IP "index_format", },
675  { "indent_str", DT_SYNONYM, NULL, IP "indent_string", },
676  { "mime_fwd", DT_SYNONYM, NULL, IP "mime_forward", },
677  { "msg_format", DT_SYNONYM, NULL, IP "message_format", },
678  { "print_cmd", DT_SYNONYM, NULL, IP "print_command", },
679  { "quote_regexp", DT_SYNONYM, NULL, IP "quote_regex", },
680  { "reply_regexp", DT_SYNONYM, NULL, IP "reply_regex", },
681  { "xterm_icon", DT_SYNONYM, NULL, IP "ts_icon_format", },
682  { "xterm_set_titles", DT_SYNONYM, NULL, IP "ts_enabled", },
683  { "xterm_title", DT_SYNONYM, NULL, IP "ts_status_format", },
684 
685  { NULL, 0, NULL, 0, 0, NULL, NULL },
686  // clang-format on
687 };
688 
692 bool config_init_main(struct ConfigSet *cs)
693 {
694  return cs_register_variables(cs, MainVars, 0);
695 }
696 
702 struct ConfigSet *init_config(size_t size)
703 {
704  struct ConfigSet *cs = cs_new(size);
705 
706  // Define the config types
707  address_init(cs);
708  bool_init(cs);
709  enum_init(cs);
710  long_init(cs);
711  mbtable_init(cs);
712  number_init(cs);
713  path_init(cs);
714  quad_init(cs);
715  regex_init(cs);
716  slist_init(cs);
717  sort_init(cs);
718  string_init(cs);
719 
720 #define CONFIG_INIT(NAME) \
721  bool config_init_##NAME(struct ConfigSet *cs); \
722  config_init_##NAME(cs)
723 
724  // Define the config variables
725  CONFIG_INIT(main);
726 #ifdef USE_AUTOCRYPT
727  CONFIG_INIT(autocrypt);
728 #endif
729  CONFIG_INIT(conn);
730 #ifdef USE_HCACHE
731  CONFIG_INIT(hcache);
732 #endif
733  CONFIG_INIT(helpbar);
734  CONFIG_INIT(history);
735 #ifdef USE_IMAP
736  CONFIG_INIT(imap);
737 #endif
738  CONFIG_INIT(maildir);
739  CONFIG_INIT(mbox);
740  CONFIG_INIT(ncrypt);
741 #ifdef USE_NNTP
742  CONFIG_INIT(nntp);
743 #endif
744 #ifdef USE_NOTMUCH
745  CONFIG_INIT(notmuch);
746 #endif
747  CONFIG_INIT(pattern);
748 #ifdef USE_POP
749  CONFIG_INIT(pop);
750 #endif
751  CONFIG_INIT(send);
752 #ifdef USE_SIDEBAR
753  CONFIG_INIT(sidebar);
754 #endif
755 
756  return cs;
757 }
Convenience wrapper for the gui headers.
char * C_AssumedCharset
Config: If a message is missing a character set, assume this character set.
Definition: charset.c:52
#define CONFIG_INIT(NAME)
bool C_AttachSplit
Config: Save/print/pipe tagged messages individually.
Definition: recvattach.c:74
WHERE bool C_SizeUnitsOnLeft
Config: Show the units as a prefix to the size.
Definition: mutt_globals.h:165
#define R_PAGER
Redraw the pager menu.
Definition: types.h:66
WHERE bool C_WriteBcc
Config: Write out the &#39;Bcc&#39; field when preparing to send a mail.
Definition: mutt_globals.h:173
WHERE char * C_Attribution
Config: Message to start a reply, "On DATE, PERSON wrote:".
Definition: mutt_globals.h:86
Container for lots of config items.
Definition: set.h:227
void quad_init(struct ConfigSet *cs)
Register the Quad-option config type.
Definition: quad.c:184
WHERE unsigned char C_MimeForward
Config: Forward a message as a &#39;message/RFC822&#39; MIME part.
Definition: mutt_globals.h:129
void bool_init(struct ConfigSet *cs)
Register the Bool config type.
Definition: bool.c:182
bool C_AllowAnsi
Config: Allow ANSI colour codes in rich text messages.
Definition: pager.c:84
char * C_MessageFormat
Config: printf-like format string for listing attached messages.
Definition: recvattach.c:76
bool C_ResumeEditedDraftFiles
Config: Resume editing previously saved draft files.
Definition: main.c:95
short C_PagerContext
Config: Number of lines of overlap when changing pages in the pager.
Definition: pager.c:86
bool C_MarkOld
Config: Mark new emails as old when leaving the mailbox.
Definition: globals.c:36
WHERE bool C_DeleteUntag
Config: Untag messages when they are marked for deletion.
Definition: mutt_globals.h:146
#define DT_NOT_EMPTY
Empty strings are not allowed.
Definition: types.h:46
GUI editor for an email&#39;s headers.
bool C_HideMissing
Config: Don&#39;t indicate missing messages, in the thread tree.
Definition: mutt_thread.c:50
bool C_MessageCacheClean
Config: (imap/pop) Clean out obsolete entries from the message cache.
Definition: bcache.c:44
WHERE bool C_SaveEmpty
Config: (mbox,mmdf) Preserve empty mailboxes.
Definition: mutt_globals.h:160
#define DT_SORT_AUX
Sort id for SortAuxMethods.
Definition: sort2.h:42
Config/command parsing.
int level_validator(const struct ConfigSet *cs, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Validate the "debug_level" config variable - Implements ConfigDef::validator()
Definition: mutt_logging.c:308
#define R_PAGER_FLOW
Reflow line_info and redraw the pager menu.
Definition: types.h:67
char * C_AliasFormat
Config: printf-like format string for the alias menu.
Definition: dlgalias.c:54
Structs that make up an email.
String processing routines to generate the mail index.
WHERE short C_Timeout
Config: Time to wait for user input in menus.
Definition: mutt_globals.h:116
bool C_UncollapseJump
Config: When opening a thread, jump to the next unread message.
Definition: index.c:106
WHERE bool C_Askcc
Config: Ask the user for the carbon-copy recipients.
Definition: mutt_globals.h:137
GUI manage the main index (list of emails)
char * C_Escape
Definition: mutt_config.c:73
User answered &#39;Yes&#39;, or assume &#39;Yes&#39;.
Definition: quad.h:40
WHERE char * C_TsIconFormat
Config: printf-like format string for the terminal&#39;s icon title.
Definition: mutt_globals.h:112
char * C_AttachSaveWithoutPrompting
Config: If true, then don&#39;t prompt to save.
Definition: recvattach.c:72
unsigned char C_Move
Config: Move emails from C_Spoolfile to C_Mbox when read.
Definition: mx.c:85
#define DT_REGEX
regular expressions
Definition: types.h:38
#define SLIST_SEP_COMMA
Definition: slist.h:31
char * C_AttachSep
Config: Separator to add between saved/printed/piped attachments.
Definition: recvattach.c:73
NeoMutt Logging.
void number_init(struct ConfigSet *cs)
Register the Number config type.
Definition: number.c:258
bool C_HideThreadSubject
Config: Hide subjects that are similar to that of the parent message.
Definition: mutt_thread.c:51
struct Regex * C_ReplyRegex
Config: Regex to match message reply subjects like "re: ".
Definition: globals.c:37
static bool send(struct Notify *source, struct Notify *current, enum NotifyType event_type, int event_subtype, void *event_data)
Send out a notification message.
Definition: notify.c:104
WHERE bool C_Header
Config: Include the message headers in the reply email (Weed applies)
Definition: mutt_globals.h:151
RFC1524 Mailcap routines.
short C_ScoreThresholdFlag
Config: Messages with a greater score will be automatically flagged.
Definition: score.c:50
WHERE bool C_Score
Config: Use message scoring.
Definition: mutt_globals.h:161
bool C_DigestCollapse
Config: Hide the subparts of a multipart/digest.
Definition: recvattach.c:75
WHERE short C_SleepTime
Config: Time to pause after certain info messages.
Definition: mutt_globals.h:115
WHERE char * C_Realname
Config: Real name of the user.
Definition: mutt_globals.h:106
bool C_PrintSplit
Config: Print multiple messages separately.
Definition: commands.c:90
#define DT_SORT
sorting methods
Definition: types.h:40
char * C_PipeSep
Config: Separator to add between multiple piped messages.
Definition: commands.c:87
WHERE bool C_BeepNew
Config: Make a noise when new mail arrives.
Definition: mutt_globals.h:141
WHERE char * C_AbortKey
Config: String representation of key to abort prompts.
Definition: mutt_globals.h:84
bool C_PipeDecode
Config: Decode the message when piping it.
Definition: commands.c:86
#define DT_NOT_NEGATIVE
Negative numbers are not allowed.
Definition: types.h:47
WHERE char * C_Hostname
Config: Fully-qualified domain name of this machine.
Definition: mutt_globals.h:92
void sort_init(struct ConfigSet *cs)
Register the Sort config type.
Definition: sort.c:369
WHERE bool C_BrailleFriendly
Config: Move the cursor to the beginning of the line.
Definition: mutt_globals.h:142
char * C_MarkMacroPrefix
Config: Prefix for macros using &#39;<mark-message>&#39;.
Definition: index.c:105
#define DT_SLIST
a list of strings
Definition: types.h:39
bool C_CollapseAll
Config: Collapse all threads when entering a folder.
Definition: index.c:102
char * C_Ispell
Config: External command to perform spell-checking.
Definition: compose.c:97
#define DT_MBTABLE
multibyte char table
Definition: types.h:34
bool C_IgnoreLinearWhiteSpace
Definition: mutt_config.c:74
short C_SortBrowser
Config: Sort method for the browser.
Definition: browser.c:71
char * C_MessageCachedir
Config: (imap/pop) Directory for the message cache.
Definition: bcache.c:48
char * C_FolderFormat
Config: printf-like format string for the browser&#39;s display of folders.
Definition: browser.c:70
bool C_DuplicateThreads
Config: Highlight messages with duplicated message IDs.
Definition: mutt_thread.c:48
#define ISPELL
Definition: mutt_config.c:69
struct MbTable * C_StatusChars
Config: Indicator characters for the status bar.
Definition: status.c:49
WHERE struct Slist * C_MailcapPath
Config: Colon-separated list of mailcap files.
Definition: mutt_globals.h:96
WHERE bool C_UseDomain
Config: Qualify local addresses using this domain.
Definition: mutt_globals.h:170
char * C_MixEntryFormat
Config: (mixmaster) printf-like format string for the mixmaster chain.
Definition: remailer.c:58
Config item definition.
Definition: set.h:61
void enum_init(struct ConfigSet *cs)
Register the Enumeration config type.
Definition: enum.c:190
WHERE bool C_AutoTag
Config: Automatically apply actions to all tagged messages.
Definition: mutt_globals.h:139
#define DT_QUAD
quad-option (no/yes/ask-no/ask-yes)
Definition: types.h:37
#define R_RESORT
Resort the mailbox.
Definition: types.h:68
WHERE bool C_EditHeaders
Config: Let the user edit the email headers whilst editing an email.
Definition: mutt_globals.h:147
bool C_SortRe
Config: Sort method for the sidebar.
Definition: mutt_thread.c:55
int charset_validator(const struct ConfigSet *cs, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Validate the "charset" config variable - Implements ConfigDef::validator()
Definition: init.c:1542
WHERE char * C_Visual
Config: Editor to use when &#39;~v&#39; is given in the built-in editor.
Definition: mutt_globals.h:113
struct MbTable * C_FromChars
Config: User-configurable index flags: to address, cc address, etc.
Definition: hdrline.c:63
struct MbTable * C_ToChars
Config: Indicator characters for the &#39;To&#39; field in the index.
Definition: hdrline.c:64
bool C_AutoSubscribe
Config: Automatically check if the user is subscribed to a mailing list.
Definition: globals.c:35
Convenience wrapper for the config headers.
#define DT_PATH_DIR
Path is a directory.
Definition: types.h:53
GUI component for displaying/selecting items from a list.
WHERE char * C_Shell
Config: External command to run subshells in.
Definition: mutt_globals.h:107
#define DT_SORT_BROWSER
Sort id for SortBrowserMethods.
Definition: sort2.h:40
Email Address Handling.
bool C_HideLimited
Config: Don&#39;t indicate hidden messages, in the thread tree.
Definition: mutt_thread.c:49
Assorted sorting methods.
Ask the user, defaulting to &#39;Yes&#39;.
Definition: quad.h:42
#define R_TREE
Redraw the thread tree.
Definition: types.h:71
Some miscellaneous functions.
char * C_Trash
Config: Folder to put deleted emails.
Definition: mx.c:86
Command line processing.
WHERE unsigned char C_ForwardAttachments
Config: Forward attachments when forwarding a message.
Definition: mutt_globals.h:128
Parse and execute user-defined hooks.
API for mailboxes.
char * C_Mixmaster
Config: (mixmaster) External command to route a mixmaster message.
Definition: remailer.c:59
WHERE char * C_IndexFormat
Config: printf-like format string for the index menu (emails)
Definition: mutt_globals.h:93
WHERE bool C_ForwardQuote
Config: Automatically quote a forwarded message using C_IndentString.
Definition: mutt_globals.h:150
struct Slist * C_HiddenTags
Config: Tags that shouldn&#39;t be displayed on screen.
Definition: tags.c:36
bool C_PrintDecode
Config: Decode message before printing it.
Definition: commands.c:89
Convenience wrapper for the core headers.
WHERE char * C_StatusFormat
Config: printf-like format string for the index&#39;s status line.
Definition: mutt_globals.h:110
bool C_HideTopLimited
Config: Don&#39;t indicate hidden top message, in the thread tree.
Definition: mutt_thread.c:52
void mbtable_init(struct ConfigSet *cs)
Register the MbTable config type.
Definition: mbtable.c:281
bool C_IdnEncode
void slist_init(struct ConfigSet *cs)
Register the Slist config type.
Definition: slist.c:238
WHERE bool C_ReadOnly
Config: Open folders in read-only mode.
Definition: mutt_globals.h:156
WHERE bool C_Beep
Config: Make a noise when an error occurs.
Definition: mutt_globals.h:140
bool C_ForceName
Config: Save outgoing mail in a folder of their name.
Definition: hook.c:59
WHERE short C_Sort
Config: Sort method for the index.
Definition: sort.h:58
bool C_StrictThreads
Config: Thread messages using &#39;In-Reply-To&#39; and &#39;References&#39; headers.
Definition: mutt_thread.c:56
Email Aliases.
WHERE char * C_PrintCommand
Config: External command to print a message.
Definition: mutt_globals.h:104
Progress bar.
WHERE bool C_PrintDecodeWeed
Config: Control whether to weed headers when printing an email.
Definition: mutt_globals.h:155
struct Regex * C_Smileys
Config: Regex to match smileys to prevent mistakes when quoting text.
Definition: pager.c:92
bool C_PipeSplit
Config: Run the pipe command on each message separately.
Definition: commands.c:88
Body Caching - local copies of email bodies.
#define DT_PATH_FILE
Path is a file.
Definition: types.h:54
bool C_ReflowText
Config: Reformat paragraphs of &#39;format=flowed&#39; text.
Definition: handler.c:70
WHERE int C_ToggleQuotedShowLevels
Config: Number of quote levels to show with toggle-quoted.
Definition: mutt_globals.h:122
#define R_MENU
Redraw all menus.
Definition: types.h:74
short C_ReadInc
Config: Update the progress bar after this many records read (0 to disable)
Definition: progress.c:44
#define DT_ADDRESS
e-mail address
Definition: types.h:29
bool C_Rfc2047Parameters
Config: Decode RFC2047-encoded MIME parameters.
Definition: rfc2231.c:49
#define DT_STRING
a string
Definition: types.h:41
short C_SortAlias
Config: Sort method for the alias menu.
Definition: dlgalias.c:55
#define R_RESORT_SUB
Resort subthreads.
Definition: types.h:69
WHERE bool C_ForwardDecode
Config: Decode the message when forwarding it.
Definition: mutt_globals.h:149
char * C_QueryCommand
Config: External command to query and external address book.
Definition: dlgquery.c:55
#define R_REFLOW
Reflow window layout and full redraw.
Definition: types.h:72
WHERE short C_SortAux
Config: Secondary sort method for the index.
Definition: sort.h:59
short C_MailCheckStatsInterval
Config: How often to check for new mail.
Definition: mutt_mailbox.c:53
bool C_ReverseAlias
Config: Display the alias in the index, rather than the message&#39;s sender.
Definition: sort.c:51
WHERE bool C_SizeShowBytes
Config: Show smaller sizes in bytes.
Definition: mutt_globals.h:162
WHERE short C_Wrap
Config: Width to wrap text in the pager.
Definition: mutt_globals.h:117
WHERE struct Regex * C_QuoteRegex
Config: Regex to match quoted text in a reply.
Definition: mutt_globals.h:121
short C_DebugLevel
Config: Logging level for debug logs.
Definition: mutt_logging.c:48
WHERE bool C_Suspend
Config: Allow the user to suspend NeoMutt using &#39;^Z&#39;.
Definition: mutt_globals.h:167
#define DT_PATH
a path to a file/directory
Definition: types.h:36
WHERE char * C_Editor
Config: External command to use as an email editor.
Definition: mutt_globals.h:91
WHERE unsigned char C_Bounce
Config: Confirm before bouncing a message.
Definition: mutt_globals.h:125
Create/manipulate threading in emails.
WHERE bool C_SaveAddress
Config: Use sender&#39;s full address as a default save folder.
Definition: mutt_globals.h:159
bool C_HideTopMissing
Config: Don&#39;t indicate missing top message, in the thread tree.
Definition: mutt_thread.c:53
WHERE bool C_TsEnabled
Config: Allow NeoMutt to set the terminal status line and icon.
Definition: mutt_globals.h:169
User answered &#39;No&#39;, or assume &#39;No&#39;.
Definition: quad.h:39
#define DT_DEPRECATED
Config item shouldn&#39;t be used any more.
Definition: types.h:79
#define DT_MAILBOX
Don&#39;t perform path expansions.
Definition: types.h:48
struct Regex * C_GecosMask
Config: Regex for parsing GECOS field of /etc/passwd.
Definition: muttlib.c:70
int pager_validator(const struct ConfigSet *cs, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Check for config variables that can&#39;t be set from the pager - Implements ConfigDef::validator() ...
Definition: init.c:1653
WHERE char * C_ConfigCharset
Config: Character set that the config files are in.
Definition: mutt_globals.h:89
Manage where the email is piped to external commands.
char * C_QueryFormat
Config: printf-like format string for the query menu (address book)
Definition: dlgquery.c:56
#define DT_SORT_ALIAS
Sort id for SortAliasMethods.
Definition: sort2.h:39
WHERE char * C_Folder
Config: Base folder for a set of mailboxes.
Definition: mutt_globals.h:97
WHERE bool C_Askbcc
Config: Ask the user for the blind-carbon-copy recipients.
Definition: mutt_globals.h:136
#define DT_COMMAND
A command.
Definition: types.h:50
char * C_AttachSaveDir
Config: Default directory where attachments are saved.
Definition: recvattach.c:71
void address_init(struct ConfigSet *cs)
Register the Address config type.
Definition: address.c:236
RFC3676 Format Flowed routines.
int reply_validator(const struct ConfigSet *cs, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Validate the "reply_regex" config variable - Implements ConfigDef::validator()
Definition: init.c:1687
GUI present the user with a selectable list.
Sort by email alias.
Definition: sort2.h:60
WHERE bool C_Autoedit
Config: Skip the initial compose menu and edit the email.
Definition: mutt_globals.h:138
WHERE bool C_SizeShowFractions
Config: Show size fractions with a single decimal place.
Definition: mutt_globals.h:163
WHERE bool C_FlagSafe
Config: Protect flagged messages from deletion.
Definition: mutt_globals.h:148
#define DT_REGEX_NOSUB
Do not report what was matched (REG_NOSUB)
Definition: regex3.h:37
WHERE bool C_Markers
Config: Display a &#39;+&#39; at the beginning of wrapped lines in the pager.
Definition: mutt_globals.h:153
unsigned char C_MboxType
Config: Default type for creating new mailboxes.
Definition: mx.c:84
WHERE bool C_Confirmcreate
Config: Confirm before creating a new mailbox.
Definition: mutt_globals.h:144
void string_init(struct ConfigSet *cs)
Register the String config type.
Definition: string.c:226
bool C_IncludeEncrypted
Config: Whether to include encrypted content when replying.
Definition: handler.c:67
WHERE char * C_NewMailCommand
Config: External command to run when new mail arrives.
Definition: mutt_globals.h:105
short C_MailCheck
Config: Number of seconds before NeoMutt checks for new mail.
Definition: mutt_mailbox.c:51
WHERE bool C_MailCheckRecent
Config: Notify the user about new mail since the last time the mailbox was opened.
Definition: mutt_globals.h:152
WHERE bool C_AbortBackspace
Config: Hitting backspace against an empty prompt aborts the prompt.
Definition: mutt_globals.h:83
#define DT_REGEX_MATCH_CASE
Case-sensitive matching.
Definition: regex3.h:35
bool C_MailcapSanitize
Config: Restrict the possible characters in mailcap expandos.
Definition: mailcap.c:48
WHERE bool C_SizeShowMb
Config: Show sizes in megabytes for sizes greater than 1 megabyte.
Definition: mutt_globals.h:164
bool C_SaveName
Config: Save outgoing message to mailbox of recipient&#39;s name if it exists.
Definition: hook.c:60
WHERE struct Address * C_From
Config: Default &#39;From&#39; address to use, if isn&#39;t otherwise set.
Definition: mutt_globals.h:81
bool C_NarrowTree
Config: Draw a narrower thread tree in the index.
Definition: mutt_thread.c:54
bool config_init_main(struct ConfigSet *cs)
Register main config variables.
Definition: mutt_config.c:692
WHERE unsigned char C_Copy
Config: Save outgoing emails to $record.
Definition: mutt_globals.h:126
WHERE char * C_TsStatusFormat
Config: printf-like format string for the terminal&#39;s status (window title)
Definition: mutt_globals.h:111
struct ConfigSet * cs_new(size_t size)
Create a new Config Set.
Definition: set.c:166
Routines for adding user scores to emails.
WHERE bool C_WrapSearch
Config: Wrap around when the search hits the end.
Definition: mutt_globals.h:172
bool C_HonorDisposition
Config: Don&#39;t display MIME parts inline if they have a disposition of &#39;attachment&#39;.
Definition: handler.c:65
bool C_SmartWrap
Config: Wrap text at word boundaries.
Definition: pager.c:91
WHERE char * C_AliasFile
Config: Save new aliases to this file.
Definition: mutt_globals.h:85
WHERE bool C_ArrowCursor
Config: Use an arrow &#39;->&#39; instead of highlighting in the index.
Definition: mutt_globals.h:133
&#39;mbox&#39; Mailbox type
Definition: mailbox.h:48
WHERE char * C_SimpleSearch
Config: Pattern to search for when search doesn&#39;t contain ~&#39;s.
Definition: mutt_globals.h:108
WHERE bool C_AsciiChars
Config: Use plain ASCII characters, when drawing email threads.
Definition: mutt_globals.h:135
int multipart_validator(const struct ConfigSet *cs, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Validate the "show_multipart_alternative" config variable - Implements ConfigDef::validator() ...
Definition: init.c:1669
bool C_PagerStop
Config: Don&#39;t automatically open the next message when at the end of a message.
Definition: pager.c:88
GUI display a user-configurable status line.
void long_init(struct ConfigSet *cs)
Register the Long config type.
Definition: long.c:239
bool C_PromptAfter
Config: Pause after running an external pager.
Definition: commands.c:91
WHERE char * C_Record
Config: Folder to save &#39;sent&#39; messages.
Definition: mutt_globals.h:99
GUI display a file/email/help in a viewport with paging.
WHERE bool C_CopyDecodeWeed
Config: Controls whether to weed headers when copying or saving emails.
Definition: mutt_globals.h:145
short C_WriteInc
Config: Update the progress bar after this many records written (0 to disable)
Definition: progress.c:45
Required by makedoc.c.
Definition: sort2.h:52
WHERE unsigned char C_Delete
Config: Really delete messages, when the mailbox is closed.
Definition: mutt_globals.h:127
#define DT_SYNONYM
synonym for another variable
Definition: types.h:42
WHERE char * C_DateFormat
Config: strftime format string for the d expando.
Definition: mutt_globals.h:90
short C_NetInc
Config: (socket) Update the progress bar after this many KB sent/received (0 to disable) ...
Definition: progress.c:46
WHERE char * C_Spoolfile
Config: Inbox.
Definition: mutt_globals.h:109
char * C_DebugFile
Config: File to save debug logs.
Definition: mutt_logging.c:49
Routines for managing attachments.
WHERE char * C_Pager
Config: External command for viewing messages, or &#39;builtin&#39; to use NeoMutt&#39;s.
Definition: mutt_globals.h:100
Send/reply with an attachment.
short C_TimeInc
Config: Frequency of progress bar updates (milliseconds)
Definition: progress.c:43
WHERE bool C_ResumeDraftFiles
Config: Process draft files like postponed messages.
Definition: mutt_globals.h:158
Ask the user, defaulting to &#39;No&#39;.
Definition: quad.h:41
char * C_DisplayFilter
Config: External command to pre-process an email before display.
Definition: commands.c:85
struct MbTable * C_FlagChars
Config: User-configurable index flags: tagged, new, etc.
Definition: hdrline.c:62
bool C_ImplicitAutoview
Config: Display MIME attachments inline if a &#39;copiousoutput&#39; mailcap entry exists.
Definition: handler.c:66
WHERE bool C_StatusOnTop
Config: Display the status bar at the top.
Definition: mutt_globals.h:166
unsigned char C_Postpone
Config: Save messages to the C_Postponed folder.
Definition: compose.c:98
bool C_BrowserAbbreviateMailboxes
Config: Abbreviate mailboxes using &#39;~&#39; and &#39;=&#39; in the browser.
Definition: browser.c:69
char * C_Tmpdir
Config: Directory for temporary files.
Definition: file.c:56
struct ConfigSet * init_config(size_t size)
Initialise the config system.
Definition: mutt_config.c:702
WHERE unsigned char C_Quit
Config: Prompt before exiting NeoMutt.
Definition: mutt_globals.h:131
#define DT_ENUM
an enumeration
Definition: types.h:31
void regex_init(struct ConfigSet *cs)
Register the Regex config type.
Definition: regex.c:302
short C_ScoreThresholdDelete
Config: Messages with a lower score will be automatically deleted.
Definition: score.c:49
#define IP
Definition: set.h:54
short C_SkipQuotedOffset
Config: Lines of context to show when skipping quoted text.
Definition: pager.c:90
bool C_CollapseUnread
Config: Prevent the collapse of threads with unread emails.
Definition: index.c:104
char * C_ShowMultipartAlternative
Config: How to display &#39;multipart/alternative&#39; MIME parts.
Definition: handler.c:71
struct EnumDef MboxTypeDef
Definition: mx.c:98
WHERE bool C_PipeDecodeWeed
Config: Control whether to weed headers when piping an email.
Definition: mutt_globals.h:154
bool C_HeaderColorPartial
Config: Only colour the part of the header matching the regex.
Definition: pager.c:85
bool C_ReflowSpaceQuotes
Config: Insert spaces into reply quotes for &#39;format=flowed&#39; messages.
Definition: rfc3676.c:46
bool C_Weed
Config: Filter headers when displaying/forwarding/printing/replying.
Definition: globals.c:40
WHERE char * C_AttachFormat
Config: printf-like format string for the attachment menu.
Definition: mutt_globals.h:88
bool C_Tilde
Config: Character to pad blank lines in the pager.
Definition: pager.c:93
char * C_Charset
Config: Default character set for displaying text on screen.
Definition: charset.c:53
#define R_RESORT_INIT
Resort from scratch.
Definition: types.h:70
bool cs_register_variables(const struct ConfigSet *cs, struct ConfigDef vars[], int flags)
Register a set of config items.
Definition: set.c:287
bool C_IdnDecode
short C_ScoreThresholdRead
Config: Messages with a lower score will be automatically marked read.
Definition: score.c:51
char * C_SendCharset
Config: Character sets for outgoing mail.
Definition: globals.c:38
bool C_ChangeFolderNext
Config: Suggest the next folder, rather than the first when using &#39;<change-folder>&#39;.
Definition: index.c:101
Hundreds of global variables to back the user variables.
char * C_ComposeFormat
Config: printf-like format string for the Compose panel&#39;s status bar.
Definition: compose.c:96
char * C_DefaultHook
Config: Pattern to use for hooks that only have a simple regex.
Definition: hook.c:58
bool C_MailCheckStats
Config: Periodically check for new mail.
Definition: mutt_mailbox.c:52
bool C_KeepFlagged
Config: Don&#39;t move flagged messages from C_Spoolfile to C_Mbox.
Definition: mx.c:83
WHERE unsigned char C_Print
Config: Confirm before printing a message.
Definition: mutt_globals.h:130
Sort by the date the email was sent.
Definition: sort2.h:50
struct MbTable * C_CryptChars
Config: User-configurable crypto flags: signed, encrypted etc.
Definition: hdrline.c:61
unsigned char C_MimeForwardRest
Config: Forward all attachments, even if they can&#39;t be decoded.
Definition: recvcmd.c:60
Convenience wrapper for the library headers.
int main(int argc, char *argv[], char *envp[])
Start NeoMutt.
Definition: main.c:364
WHERE char * C_AttributionLocale
Config: Locale for dates in the attribution message.
Definition: mutt_globals.h:87
WHERE char * C_PagerFormat
Config: printf-like format string for the pager&#39;s status bar.
Definition: mutt_globals.h:101
Decide how to display email content.
#define DT_REGEX_ALLOW_NOT
Regex can begin with &#39;!&#39;.
Definition: regex3.h:36
short C_SearchContext
Config: Context to display around search matches.
Definition: pager.c:89
WHERE char * C_Mbox
Config: Folder that receives read emails (see Move)
Definition: mutt_globals.h:95
bool C_UncollapseNew
Config: Open collapsed threads when new mail arrives.
Definition: index.c:107
WHERE struct Regex * C_Mask
Config: Only display files/dirs matching this regex in the browser.
Definition: mutt_globals.h:120
struct Slist * C_PreferredLanguages
Config: Preferred languages for multilingual MIME.
Definition: handler.c:69
#define DT_NUMBER
a number
Definition: types.h:35
bool C_IncludeOnlyfirst
Config: Only include the first attachment when replying.
Definition: handler.c:68
#define DT_BOOL
boolean option
Definition: types.h:30
bool C_MetaKey
Config: Interpret &#39;ALT-x&#39; as &#39;ESC-x&#39;.
Definition: curs_lib.c:71
bool C_ThreadReceived
Config: Sort threaded messages by their received date.
Definition: mutt_thread.c:57
WHERE char * C_Postponed
Config: Folder to store postponed messages.
Definition: mutt_globals.h:102
char * C_SpamSeparator
Config: Separator for multiple spam headers.
Definition: globals.c:39
WHERE char * C_ArrowString
Config: Use an custom string for arrow_cursor.
Definition: mutt_globals.h:134
void path_init(struct ConfigSet *cs)
Register the Path config type.
Definition: path.c:248
Support of Mixmaster anonymous remailer.
short C_PagerIndexLines
Config: Number of index lines to display above the pager.
Definition: pager.c:87
bool C_CollapseFlagged
Config: Prevent the collapse of threads with flagged emails.
Definition: index.c:103
WHERE bool C_Resolve
Config: Move to the next email whenever a command modifies an email.
Definition: mutt_globals.h:157
short C_ReflowWrap
Config: Maximum paragraph width for reformatting &#39;format=flowed&#39; text.
Definition: rfc3676.c:47
#define R_INDEX
Redraw the index menu (MENU_MAIN)
Definition: types.h:65
WHERE char * C_IndentString
Config: String used to indent &#39;reply&#39; text.
Definition: mutt_globals.h:103
WHERE bool C_WaitKey
Config: Prompt to press a key after running external commands.
Definition: mutt_globals.h:171
#define SLIST_SEP_COLON
Definition: slist.h:32
WHERE bool C_Confirmappend
Config: Confirm before appending emails to a mailbox.
Definition: mutt_globals.h:143
WHERE bool C_TextFlowed
Config: Generate &#39;format=flowed&#39; messages.
Definition: mutt_globals.h:168