+
+ /*
+ ** .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();
+ };