/* build complete documentation */
#ifdef _MAKEDOC
-# ifndef MIXMASTER
-# define MIXMASTER "mixmaster"
-# endif
# ifndef USE_SSL
# define USE_SSL
# endif
# ifndef USE_GNUTLS
# define USE_GNUTLS
# endif
-# ifndef USE_DOTLOCK
-# define USE_DOTLOCK
-# endif
# ifndef USE_HCACHE
# define USE_HCACHE
# endif
** When \fIunset\fP, Madmutt will not collapse a thread if it contains any
** unread messages.
*/
- {"count_attachments", DT_BOOL, R_NONE, OPTCOUNTATTACH, "yes"},
- /*
- ** .pp
- ** This variable controls whether attachments should be counted for $$$index_format
- ** and its \fT%X\fP expando or not. As for scoring, this variable can be used to
- ** selectively turn counting on or off instead of removing and re-adding rules as
- ** prefered because counting requires full loading of messages.
- ** .pp
- ** If it is \fIset\fP and rules were defined via the \fTattachments\fP and/or
- ** \fTunattachments\fP commands, counting will be done. If it is \fIunset\fP no
- ** counting will be done regardless whether rules were defined or not.
- */
{"uncollapse_jump", DT_BOOL, R_NONE, OPTUNCOLLAPSEJUMP, "no" },
/*
** .pp
** will be saved for later references. Also see ``$$record'',
** ``$$save_name'', ``$$force_name'' and ``$fcc-hook''.
*/
-
{"crypt_use_gpgme", DT_BOOL, R_NONE, OPTCRYPTUSEGPGME, "no" },
/*
** .pp
** \fBNote\fP: You need to use this option in your \fT.madmuttrc\fP configuration
** file as it won't have any effect when used interactively.
*/
-
{"crypt_autopgp", DT_BOOL, R_NONE, OPTCRYPTAUTOPGP, "yes" },
/*
** .pp
** is viewed it is passed as standard input to $$display_filter, and the
** filtered message is read from the standard output.
*/
-#if defined(USE_DOTLOCK)
{"dotlock_program", DT_PATH, R_NONE, UL &MuttDotlock, "$madmutt_bindir/muttng_dotlock"},
/*
- ** .pp
- ** Availability: Dotlock
- **
** .pp
** Contains the path of the \fTmadmutt_dotlock(1)\fP binary to be used by
** Madmutt.
*/
-#endif
{"dsn_notify", DT_STR, R_NONE, UL &DsnNotify, ""},
/*
** .pp
** DOING!\fP
*/
#ifdef USE_HCACHE
-
{"header_cache", DT_PATH, R_NONE, UL &HeaderCache, "" },
/*
** .pp
** cache (first hit).
*/
#endif /* HAVE_GDBM || HAVE_DB 4 */
-#if HAVE_QDBM
+#ifdef HAVE_QDBM
{ "header_cache_compress", DT_BOOL, R_NONE, OPTHCACHECOMPRESS, "no" },
/*
** .pp
** directory containing the madmutt documentation.\fP
*/
#ifdef USE_HCACHE
-#if HAVE_QDBM
+#if defined(HAVE_QDBM)
{"madmutt_hcache_backend", DT_SYS, R_NONE, 0, "qdbm" },
-#elif HAVE_GDBM
+#elif defined(HAVE_GDBM)
{"madmutt_hcache_backend", DT_SYS, R_NONE, 0, "gdbm" },
-#elif HAVE_DB4
+#elif defined(HAVE_DB4)
{"madmutt_hcache_backend", DT_SYS, R_NONE, 0, "db4" },
#else
{"madmutt_hcache_backend", DT_SYS, R_NONE, 0, "unknown" },
** menu, attachments which cannot be decoded in a reasonable manner will
** be attached to the newly composed message if this option is set.
*/
-
#ifdef USE_NNTP
{"nntp_mime_subject", DT_BOOL, R_NONE, OPTMIMESUBJECT, "yes" },
/*
** \fBNote:\fP Only change this setting if you know what you are doing.
*/
#endif
-
-#ifdef MIXMASTER
{"mix_entry_format", DT_STR, R_NONE, UL &MixEntryFormat, "%4n %c %-16s %a"},
/*
- ** .pp
- ** Availability: Mixmaster
- **
** .pp
** This variable describes the format of a remailer line on the mixmaster
** chain selection screen. The following \fTprintf(3)\fP-like sequences are
*/
{"mixmaster", DT_PATH, R_NONE, UL &Mixmaster, MIXMASTER},
/*
- ** .pp
- ** Availability: Mixmaster
- **
** .pp
** This variable contains the path to the Mixmaster binary on your
** system. It is used with various sets of parameters to gather the
** list of known remailers, and to finally send a message through the
** mixmaster chain.
*/
-#endif
{"move", DT_QUAD, R_NONE, OPT_MOVE, "ask-no" },
/*
** .pp
** checked with the check-traditional-pgp function, Madmutt will automatically
** check the message for traditional pgp.
*/
-
/* XXX Default values! */
-
{"pgp_decode_command", DT_STR, R_NONE, UL &PgpDecodeCommand, "" },
/*
** .pp
** regardless of the file's permissions.
*/
{"smtp_envelope", DT_SYN, R_NONE, UL "envelope_from_address", 0 },
-
{"smtp_host", DT_STR, R_NONE, UL &SmtpHost, "" },
/*
** .pp
** possibly including eventual real names. When it is \fIunset\fP, Madmutt will
** override any such real names with the setting of the $realname variable.
*/
- {"rfc2047_parameters", DT_BOOL, R_NONE, OPTRFC2047PARAMS, "no" },
- /*
- ** .pp
- ** When this variable is \fIset\fP, Madmutt will decode RFC-2047-encoded MIME
- ** parameters. You want to set this variable when Madmutt suggests you
- ** to save attachments to files named like this:
- ** .pp
- ** \fT=?iso-8859-1?Q?file=5F=E4=5F991116=2Ezip?=\fP
- ** .pp
- ** When this variable is \fIset\fP interactively, the change doesn't have
- ** the desired effect before you have changed folders.
- ** .pp
- ** Note that this use of RFC 2047's encoding is explicitly,
- ** prohibited by the standard, but nevertheless encountered in the
- ** wild.
- ** .pp
- ** Also note that setting this parameter will \fInot\fP have the effect
- ** that Madmutt \fIgenerates\fP this kind of encoding. Instead, Madmutt will
- ** unconditionally use the encoding specified in RFC 2231.
- */
{"save_address", DT_BOOL, R_NONE, OPTSAVEADDRESS, "no" },
/*
** .pp
** ``X-Mailto-'' and the message including headers will be shown in the editor
** regardless of what ``$$edit_headers'' is set to.
**/
- {"strict_mime", DT_BOOL, R_NONE, OPTSTRICTMIME, "yes" },
- /*
- ** .pp
- ** When \fIunset\fP, non MIME-compliant messages that doesn't have any
- ** charset indication in the ``\fTContent-Type:\fP'' header field can
- ** be displayed (non MIME-compliant messages are often generated by old
- ** mailers or buggy mailers like MS Outlook Express).
- ** See also $$assumed_charset.
- ** .pp
- ** This option also replaces linear-white-space between encoded-word
- ** and *text to a single space to prevent the display of MIME-encoded
- ** ``\fTSubject:\fP'' header field from being devided into multiple lines.
- */
{"strict_threads", DT_BOOL, R_RESORT|R_RESORT_INIT|R_INDEX, OPTSTRICTTHREADS, "no" },
/*
** .pp
*/
#endif
/*--*/
+ {"strict_mime", DT_BOOL, R_NONE, OPTSTRICTMIME, "no" },
+ {"rfc2047_parameters", DT_BOOL, R_NONE, OPTRFC2047PARAMS, "yes"},
{ NULL, -1, R_NONE, -1, NULL }
};
-static const char* Features[] = {
-#ifdef NCURSES_VERSION
- "ncurses",
-#endif
-#ifdef USE_SLANG_CURSES
- "slang",
-#endif
-#ifdef _LIBICONV_VERSION
- "iconv",
-#endif
-#ifdef HAVE_LIBIDN
- "idn",
-#endif
-#ifdef USE_DOTLOCK
- "dotlock",
-#endif
-#ifdef USE_NNTP
- "nntp",
-#endif
-#ifdef USE_SSL
- "ssl",
-#endif
-#ifdef USE_GNUTLS
- "gnutls",
-#endif
-#ifdef USE_SASL
- "sasl",
-#endif
-#ifdef USE_LIBESMTP
- "libesmtp",
-#endif
-#ifdef HAVE_COLOR
- "color",
-#endif
-#ifdef CRYPT_BACKEND_GPGME
- "gpgme",
-#endif
-#ifdef USE_HCACHE
- "header_cache",
-#endif
-#ifdef HAVE_QDBM
- "qdbm",
-#endif
-#ifdef HAVE_GDBM
- "gdbm",
-#endif
-#ifdef HAVE_DB4
- "db4",
-#endif
- /* last */
- NULL
-};
-
const struct mapping_t SortMethods[] = {
- {"date", SORT_DATE},
- {"date-sent", SORT_DATE},
- {"date-received", SORT_RECEIVED},
- {"mailbox-order", SORT_ORDER},
- {"subject", SORT_SUBJECT},
- {"from", SORT_FROM},
- {"size", SORT_SIZE},
- {"threads", SORT_THREADS},
- {"to", SORT_TO},
- {"score", SORT_SCORE},
- {"spam", SORT_SPAM},
- {NULL, 0}
+ {"date", SORT_DATE},
+ {"date-sent", SORT_DATE},
+ {"date-received", SORT_RECEIVED},
+ {"mailbox-order", SORT_ORDER},
+ {"subject", SORT_SUBJECT},
+ {"from", SORT_FROM},
+ {"size", SORT_SIZE},
+ {"threads", SORT_THREADS},
+ {"to", SORT_TO},
+ {"score", SORT_SCORE},
+ {"spam", SORT_SPAM},
+ {NULL, 0}
};
/* same as SortMethods, but with "threads" replaced by "date" */
const struct mapping_t SortAuxMethods[] = {
- {"date", SORT_DATE},
- {"date-sent", SORT_DATE},
- {"date-received", SORT_RECEIVED},
- {"mailbox-order", SORT_ORDER},
- {"subject", SORT_SUBJECT},
- {"from", SORT_FROM},
- {"size", SORT_SIZE},
- {"threads", SORT_DATE}, /* note: sort_aux == threads
- * isn't possible.
- */
- {"to", SORT_TO},
- {"score", SORT_SCORE},
- {"spam", SORT_SPAM},
- {NULL, 0}
+ {"date", SORT_DATE},
+ {"date-sent", SORT_DATE},
+ {"date-received", SORT_RECEIVED},
+ {"mailbox-order", SORT_ORDER},
+ {"subject", SORT_SUBJECT},
+ {"from", SORT_FROM},
+ {"size", SORT_SIZE},
+ {"threads", SORT_DATE}, /* note: sort_aux == threads
+ * isn't possible.
+ */
+ {"to", SORT_TO},
+ {"score", SORT_SCORE},
+ {"spam", SORT_SPAM},
+ {NULL, 0}
};
const struct mapping_t SortBrowserMethods[] = {
- {"alpha", SORT_SUBJECT},
- {"date", SORT_DATE},
- {"size", SORT_SIZE},
- {"unsorted", SORT_ORDER},
- {NULL, 0}
+ {"alpha", SORT_SUBJECT},
+ {"date", SORT_DATE},
+ {"size", SORT_SIZE},
+ {"unsorted", SORT_ORDER},
+ {NULL, 0}
};
const struct mapping_t SortAliasMethods[] = {
- {"alias", SORT_ALIAS},
- {"address", SORT_ADDRESS},
- {"unsorted", SORT_ORDER},
- {NULL, 0}
+ {"alias", SORT_ALIAS},
+ {"address", SORT_ADDRESS},
+ {"unsorted", SORT_ORDER},
+ {NULL, 0}
};
const struct mapping_t SortKeyMethods[] = {
- {"address", SORT_ADDRESS},
- {"date", SORT_DATE},
- {"keyid", SORT_KEYID},
- {"trust", SORT_TRUST},
- {NULL, 0}
+ {"address", SORT_ADDRESS},
+ {"date", SORT_DATE},
+ {"keyid", SORT_KEYID},
+ {"trust", SORT_TRUST},
+ {NULL, 0}
};
static int parse_unlists (BUFFER *, BUFFER *, unsigned long, BUFFER *);
static int parse_alias (BUFFER *, BUFFER *, unsigned long, BUFFER *);
static int parse_unalias (BUFFER *, BUFFER *, unsigned long, BUFFER *);
-static int parse_ifdef (BUFFER *, BUFFER *, unsigned long, BUFFER *);
static int parse_ignore (BUFFER *, BUFFER *, unsigned long, BUFFER *);
static int parse_unignore (BUFFER *, BUFFER *, unsigned long, BUFFER *);
static int parse_source (BUFFER *, BUFFER *, unsigned long, BUFFER *);
static int parse_unalternates (BUFFER *, BUFFER *, unsigned long, BUFFER *);
struct command_t {
- const char *name;
- int (*func) (BUFFER *, BUFFER *, unsigned long, BUFFER *);
- unsigned long data;
+ const char *name;
+ int (*func) (BUFFER *, BUFFER *, unsigned long, BUFFER *);
+ unsigned long data;
};
struct command_t Commands[] = {
- {"alternates", parse_alternates, 0},
- {"attachments", parse_attachments, 0 },
- {"unattachments",parse_unattachments,0 },
- {"unalternates", parse_unalternates, 0},
- {"account-hook", mutt_parse_hook, M_ACCOUNTHOOK},
- {"alias", parse_alias, 0},
- {"auto_view", parse_list, UL &AutoViewList},
- {"alternative_order", parse_list, UL &AlternativeOrderList},
- {"bind", mutt_parse_bind, 0},
- {"charset-hook", mutt_parse_hook, M_CHARSETHOOK},
-#ifdef HAVE_COLOR
- {"color", mutt_parse_color, 0},
- {"uncolor", mutt_parse_uncolor, 0},
-#endif
- {"exec", mutt_parse_exec, 0},
- {"fcc-hook", mutt_parse_hook, M_FCCHOOK},
- {"fcc-save-hook", mutt_parse_hook, M_FCCHOOK|M_SAVEHOOK},
- {"folder-hook", mutt_parse_hook, M_FOLDERHOOK},
- {"open-hook", mutt_parse_hook, M_OPENHOOK},
- {"close-hook", mutt_parse_hook, M_CLOSEHOOK},
- {"append-hook", mutt_parse_hook, M_APPENDHOOK},
- {"hdr_order", parse_list, UL &HeaderOrderList},
- {"ifdef", parse_ifdef, 1},
- {"ifndef", parse_ifdef, 0},
+ {"account-hook", mutt_parse_hook, M_ACCOUNTHOOK},
+ {"alias", parse_alias, 0},
+ {"alternates", parse_alternates, 0},
+ {"alternative_order", parse_list, UL &AlternativeOrderList},
+ {"append-hook", mutt_parse_hook, M_APPENDHOOK},
+ {"attachments", parse_attachments, 0 },
+ {"auto_view", parse_list, UL &AutoViewList},
+ {"bind", mutt_parse_bind, 0},
+ {"charset-hook", mutt_parse_hook, M_CHARSETHOOK},
+ {"close-hook", mutt_parse_hook, M_CLOSEHOOK},
+ {"color", mutt_parse_color, 0},
+ {"exec", mutt_parse_exec, 0},
+ {"fcc-hook", mutt_parse_hook, M_FCCHOOK},
+ {"fcc-save-hook", mutt_parse_hook, M_FCCHOOK|M_SAVEHOOK},
+ {"folder-hook", mutt_parse_hook, M_FOLDERHOOK},
+ {"hdr_order", parse_list, UL &HeaderOrderList},
+ {"open-hook", mutt_parse_hook, M_OPENHOOK},
+ {"unalternates", parse_unalternates, 0},
+ {"unattachments", parse_unattachments, 0},
+ {"uncolor", mutt_parse_uncolor, 0},
#ifdef HAVE_ICONV
- {"iconv-hook", mutt_parse_hook, M_ICONVHOOK},
+ {"iconv-hook", mutt_parse_hook, M_ICONVHOOK},
#endif
- {"ignore", parse_ignore, 0},
- {"lists", parse_lists, 0},
- {"macro", mutt_parse_macro, 0},
- {"mailboxes", buffy_parse_mailboxes, M_MAILBOXES},
- {"unmailboxes", buffy_parse_mailboxes, M_UNMAILBOXES},
- {"message-hook", mutt_parse_hook, M_MESSAGEHOOK},
- {"mbox-hook", mutt_parse_hook, M_MBOXHOOK},
- {"mime_lookup", parse_list, UL &MimeLookupList},
- {"unmime_lookup", parse_unlist, UL &MimeLookupList},
- {"mono", mutt_parse_mono, 0},
- {"my_hdr", parse_my_hdr, 0},
- {"pgp-hook", mutt_parse_hook, M_CRYPTHOOK},
- {"crypt-hook", mutt_parse_hook, M_CRYPTHOOK},
- {"push", mutt_parse_push, 0},
- {"reply-hook", mutt_parse_hook, M_REPLYHOOK},
- {"reset", parse_set, M_SET_RESET},
- {"save-hook", mutt_parse_hook, M_SAVEHOOK},
- {"score", mutt_parse_score, 0},
- {"send-hook", mutt_parse_hook, M_SENDHOOK},
- {"send2-hook", mutt_parse_hook, M_SEND2HOOK},
- {"set", parse_set, 0},
- {"source", parse_source, 0},
- {"spam", parse_spam_list, M_SPAM},
- {"nospam", parse_spam_list, M_NOSPAM},
- {"subscribe", parse_subscribe, 0},
- {"toggle", parse_set, M_SET_INV},
- {"unalias", parse_unalias, 0},
- {"unalternative_order", parse_unlist, UL &AlternativeOrderList},
- {"unauto_view", parse_unlist, UL &AutoViewList},
- {"unhdr_order", parse_unlist, UL &HeaderOrderList},
- {"unhook", mutt_parse_unhook, 0},
- {"unignore", parse_unignore, 0},
- {"unlists", parse_unlists, 0},
- {"unmono", mutt_parse_unmono, 0},
- {"unmy_hdr", parse_unmy_hdr, 0},
- {"unscore", mutt_parse_unscore, 0},
- {"unset", parse_set, M_SET_UNSET},
- {"unsubscribe", parse_unsubscribe, 0},
- {NULL, NULL, 0}
+ {"crypt-hook", mutt_parse_hook, M_CRYPTHOOK},
+ {"ignore", parse_ignore, 0},
+ {"lists", parse_lists, 0},
+ {"macro", mutt_parse_macro, 0},
+ {"mailboxes", buffy_parse_mailboxes, M_MAILBOXES},
+ {"mbox-hook", mutt_parse_hook, M_MBOXHOOK},
+ {"message-hook", mutt_parse_hook, M_MESSAGEHOOK},
+ {"mime_lookup", parse_list, UL &MimeLookupList},
+ {"mono", mutt_parse_mono, 0},
+ {"my_hdr", parse_my_hdr, 0},
+ {"nospam", parse_spam_list, M_NOSPAM},
+ {"pgp-hook", mutt_parse_hook, M_CRYPTHOOK},
+ {"push", mutt_parse_push, 0},
+ {"reply-hook", mutt_parse_hook, M_REPLYHOOK},
+ {"reset", parse_set, M_SET_RESET},
+ {"save-hook", mutt_parse_hook, M_SAVEHOOK},
+ {"score", mutt_parse_score, 0},
+ {"send2-hook", mutt_parse_hook, M_SEND2HOOK},
+ {"send-hook", mutt_parse_hook, M_SENDHOOK},
+ {"set", parse_set, 0},
+ {"source", parse_source, 0},
+ {"spam", parse_spam_list, M_SPAM},
+ {"subscribe", parse_subscribe, 0},
+ {"toggle", parse_set, M_SET_INV},
+ {"unalias", parse_unalias, 0},
+ {"unalternative_order", parse_unlist, UL &AlternativeOrderList},
+ {"unauto_view", parse_unlist, UL &AutoViewList},
+ {"unhdr_order", parse_unlist, UL &HeaderOrderList},
+ {"unhook", mutt_parse_unhook, 0},
+ {"unignore", parse_unignore, 0},
+ {"unlists", parse_unlists, 0},
+ {"unmailboxes", buffy_parse_mailboxes, M_UNMAILBOXES},
+ {"unmime_lookup", parse_unlist, UL &MimeLookupList},
+ {"unmono", mutt_parse_unmono, 0},
+ {"unmy_hdr", parse_unmy_hdr, 0},
+ {"unscore", mutt_parse_unscore, 0},
+ {"unset", parse_set, M_SET_UNSET},
+ {"unsubscribe", parse_unsubscribe, 0},
+ {NULL, NULL, 0}
};