X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-mime%2Fmime.cpkg;h=b936a4c4292fb7584a44cce665b42c52caaa02cd;hp=332bc1ff88d65e40362061c81837cb0260f2727e;hb=e1ecc56f86ef4ab94521d444c936c384392a526f;hpb=58e0ddff3bd5e1b9455e8c3ebb1f4b9e7dd71920 diff --git a/lib-mime/mime.cpkg b/lib-mime/mime.cpkg index 332bc1f..b936a4c 100644 --- a/lib-mime/mime.cpkg +++ b/lib-mime/mime.cpkg @@ -53,6 +53,8 @@ const char *BodyEncodings[] = { }; rx_t *SpamList = NULL, *NoSpamList = NULL; +string_list_t *AutoViewList, *AlternativeOrderList, *MimeLookupList; +string_list_t *Ignore, *UnIgnore, *HeaderOrderList; static char *mailcap_init(void) { @@ -63,7 +65,7 @@ static char *mailcap_init(void) return m_strdup(getenv("MAILCAPS") ?: path); } -@package Mime { +@package mod_mime { /* ** .pp ** ``$spam_separator'' controls what happens when multiple spam headers @@ -110,87 +112,78 @@ static char *mailcap_init(void) } RETURN(); }; -}; - -/****************************************************************************/ -/* rfc822 header parameters */ -/****************************************************************************/ - -char *parameter_getval(parameter_t *parm, const char *s) -{ - while (parm) { - if (!ascii_strcasecmp(parm->attribute, s)) - return parm->value; - parm = parm->next; - } - return NULL; -} -void parameter_setval(parameter_t **p, const char *attribute, const char *value) -{ - while (*p) { - if (!ascii_strcasecmp(attribute, (*p)->attribute)) { - if (value) { - m_strreplace(&(*p)->value, value); - } else { - parameter_t *q = parameter_list_pop(p); - parameter_delete(&q); - } - 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); } - p = &(*p)->next; - } - - if (value) { - (*p) = parameter_new(); - (*p)->attribute = m_strdup(attribute); - (*p)->value = m_strdup(value); - } -} + RETURN(); + }; -void parameter_delval(parameter_t **p, const char *attribute) -{ - while (*p) { - if (!ascii_strcasecmp(attribute, (*p)->attribute)) { - parameter_t *q = parameter_list_pop(p); - parameter_delete(&q); - 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(); + }; - p = &(*p)->next; - } -} - -int parameter_equal(const parameter_t *p1, const parameter_t *p2) -{ - while (p1 && p2) { - if (m_strcmp(p1->attribute, p2->attribute) - || m_strcmp(p1->value, p2->value)) - return 0; - - p1 = p1->next; - p2 = p2->next; - } - - if (p1 || p2) - return 0; - - return 1; -} - -void parameter_set_boundary(parameter_t **parm) -{ - char rs[BOUNDARYLEN + 1]; - int i; - - for (i = 0; i < BOUNDARYLEN; i++) { - rs[i] = __m_b64chars[lrand48() % sizeof(__m_b64chars)]; - } - rs[BOUNDARYLEN] = '\0'; + 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(); + }; - parameter_setval(parm, "boundary", rs); -} + 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(); + }; +}; /****************************************************************************/ /* XXX */ @@ -215,12 +208,6 @@ void envelope_wipe(ENVELOPE *p) p_delete(&p->date); p_delete(&p->x_label); p_delete(&p->organization); -#ifdef USE_NNTP - p_delete(&p->newsgroups); - p_delete(&p->xref); - p_delete(&p->followup_to); - p_delete(&p->x_comment_to); -#endif mutt_buffer_free (&p->spam); string_list_wipe(&p->references); @@ -230,9 +217,7 @@ void envelope_wipe(ENVELOPE *p) void body_wipe(BODY *b) { - if (b->parameter) - parameter_list_wipe(&b->parameter); - + b->parameter = NULL; if (b->unlink && b->filename) { unlink (b->filename); } @@ -261,7 +246,6 @@ void header_wipe(HEADER *h) p_delete(&h->maildir_flags); p_delete(&h->tree); p_delete(&h->path); - string_list_wipe(&h->chain); p_delete(&h->data); }