"x-uuencoded",
};
+rx_t *SpamList = NULL, *NoSpamList = NULL;
+string_list_t *AutoViewList, *AlternativeOrderList, *MimeLookupList;
+string_list_t *Ignore, *UnIgnore, *HeaderOrderList;
+
+static char *mailcap_init(void)
+{
+ /* Default search path from RFC1524 */
+ const char *path = "~/.mailcap:" PKGDATADIR "/mailcap:"
+ SYSCONFDIR "/mailcap:/etc/mailcap:"
+ "/usr/etc/mailcap:/usr/local/etc/mailcap";
+ return m_strdup(getenv("MAILCAPS") ?: path);
+}
+
@package Mime {
/*
** .pp
** separator.
*/
string_t spam_separator = m_strdup(",");
+
+ /*
+ ** .pp
+ ** This variable specifies which files to consult when attempting to
+ ** display MIME bodies not directly supported by Madmutt.
+ */
+ string_t mailcap_path = mailcap_init();
+
+ /*
+ ** .pp
+ ** If \fIset\fP, Madmutt will restrict possible characters in mailcap \fT%\fP expandos
+ ** to a well-defined set of safe characters. This is the safe setting,
+ ** but we are not sure it doesn't break some more advanced MIME stuff.
+ ** .pp
+ ** \fBDON'T CHANGE THIS SETTING UNLESS YOU ARE REALLY SURE WHAT YOU ARE
+ ** DOING!\fP
+ */
+ bool mailcap_sanitize = 1;
+
+ void spam(rx_t rx, const string_t tpl) {
+ rx_set_template(rx, tpl);
+ rx_list_remove(&NoSpamList, rx);
+ rx_list_add2(&SpamList, &rx);
+ RETURN();
+ };
+
+ void nospam(rx_t rx) {
+ if (!m_strcmp(rx->pattern, "*")) {
+ rx_list_wipe(&SpamList);
+ rx_list_wipe(&NoSpamList);
+ rx_delete(&rx);
+ } else {
+ rx_list_remove(&SpamList, rx);
+ rx_list_add2(&NoSpamList, &rx);
+ }
+ RETURN();
+ };
+
+ void auto_view(string_t s) {
+ string_list_add(&AutoViewList, s);
+ RETURN();
+ };
+ void unauto_view(string_t s) {
+ if (m_strcmp(s, "*")) {
+ string_list_remove(&AutoViewList, s);
+ } else {
+ string_list_wipe(&AutoViewList);
+ }
+ RETURN();
+ };
+
+ void alternative_order(string_t s) {
+ string_list_add(&AlternativeOrderList, s);
+ RETURN();
+ };
+ void unalternative_order(string_t s) {
+ if (m_strcmp(s, "*")) {
+ string_list_remove(&AlternativeOrderList, s);
+ } else {
+ string_list_wipe(&AlternativeOrderList);
+ }
+ RETURN();
+ };
+
+ void lookup(string_t s) {
+ string_list_add(&MimeLookupList, s);
+ RETURN();
+ };
+ void unlookup(string_t s) {
+ if (m_strcmp(s, "*")) {
+ string_list_remove(&MimeLookupList, s);
+ } else {
+ string_list_wipe(&MimeLookupList);
+ }
+ RETURN();
+ };
+
+ void hdr_order(string_t s) {
+ string_list_add(&HeaderOrderList, s);
+ RETURN();
+ };
+ void unhdr_order(string_t s) {
+ if (m_strcmp(s, "*")) {
+ string_list_remove(&HeaderOrderList, s);
+ } else {
+ string_list_wipe(&HeaderOrderList);
+ }
+ RETURN();
+ };
+
+ void ignore(string_t s) {
+ if (m_strcmp(s, "*")) {
+ string_list_remove(&UnIgnore, s);
+ } else {
+ string_list_wipe(&UnIgnore);
+ }
+ string_list_add(&Ignore, s);
+ RETURN();
+ };
+ void unignore(string_t s) {
+ if (m_strcmp(s, "*")) {
+ string_list_add(&UnIgnore, s);
+ string_list_remove(&Ignore, s);
+ } else {
+ string_list_wipe(&Ignore);
+ }
+ RETURN();
+ };
};
/****************************************************************************/