X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-mime%2Frfc2231.c;h=760bf11ce1ccedc5ce8f90543a212d4325546030;hp=287c1d6d38a76cd9ff2b6cc876d2e5720abe3c4b;hb=e1ecc56f86ef4ab94521d444c936c384392a526f;hpb=f3cbb9f51357972f6e74244494236a41dc4d84cd diff --git a/lib-mime/rfc2231.c b/lib-mime/rfc2231.c index 287c1d6..760bf11 100644 --- a/lib-mime/rfc2231.c +++ b/lib-mime/rfc2231.c @@ -128,24 +128,10 @@ rfc2231_list_insert(rfc2231_param **list, rfc2231_param *par) *list = par; } -static void purge_empty_parameters(parameter_t **headp) -{ - while (*headp) { - parameter_t *p = *headp; - - if (!p->attribute || !p->value) { - p = parameter_list_pop(headp); - parameter_delete(&p); - } else { - headp = &(*headp)->next; - } - } -} - /* process continuation parameters */ /* XXX: MC: not read */ static void -rfc2231_join_continuations(parameter_t **head, rfc2231_param *par) +rfc2231_join_continuations(parameters_t *head, rfc2231_param *par) { rfc2231_param *q; @@ -158,7 +144,6 @@ rfc2231_join_continuations(parameter_t **head, rfc2231_param *par) size_t l, vl; while (par) { - value = NULL; l = 0; m_strcpy(attribute, sizeof(attribute), par->attribute); @@ -184,15 +169,13 @@ rfc2231_join_continuations(parameter_t **head, rfc2231_param *par) valp = par->value; } while (par && !m_strcmp(par->attribute, attribute)); - if (value) { - if (encoded) - mutt_convert_string (&value, charset, Charset, M_ICONV_HOOK_FROM); - *head = parameter_new(); - (*head)->attribute = m_strdup(attribute); - (*head)->value = value; - head = &(*head)->next; - } + if (!value) + continue; + if (encoded) + mutt_convert_string (&value, charset, mod_cset.charset, M_ICONV_HOOK_FROM); + parameter_setval(head, attribute, value); } + p_delete(&value); } /****************************************************************************/ @@ -200,8 +183,9 @@ rfc2231_join_continuations(parameter_t **head, rfc2231_param *par) /****************************************************************************/ /* XXX: MC: not read */ -void rfc2231_decode_parameters (parameter_t ** headp) +void rfc2231_decode_parameters(parameters_t *headp) { +#if 0 parameter_t *head = NULL; parameter_t **last; parameter_t *p, *q; @@ -219,7 +203,7 @@ void rfc2231_decode_parameters (parameter_t ** headp) if (!headp) return; - purge_empty_parameters (headp); + parameter_purge_empty(headp); for (last = &head, p = *headp; p; p = q) { q = p->next; @@ -236,7 +220,7 @@ void rfc2231_decode_parameters (parameter_t ** headp) if (p->value && strstr(p->value, "=?")) { rfc2047_decode(&p->value); } else { - if (mime_which_token(AssumedCharset, -1) == MIME_US_ASCII) + if (mime_which_token(mod_cset.assumed_charset, -1) == MIME_US_ASCII) mutt_convert_nonmime_string(&p->value); } @@ -249,7 +233,7 @@ void rfc2231_decode_parameters (parameter_t ** headp) s = rfc2231_get_charset (p->value, charset, sizeof (charset)); rfc2231_decode_one (p->value, s); - mutt_convert_string (&p->value, charset, Charset, M_ICONV_HOOK_FROM); + mutt_convert_string (&p->value, charset, mod_cset.charset, M_ICONV_HOOK_FROM); *last = p; last = &p->next; @@ -288,7 +272,8 @@ void rfc2231_decode_parameters (parameter_t ** headp) *headp = head; if (dirty) - purge_empty_parameters (headp); + parameter_purge_empty(headp); +#endif } #define RFC2231_SPECIALS "@.,;:<>[]\\\"()?/= \t*'%" @@ -313,13 +298,13 @@ int rfc2231_encode_string(char **s) return 0; } - if (Charset && SendCharset) { - charset = mutt_choose_charset(Charset, SendCharset, + if (mod_cset.charset && mod_cset.send_charset) { + charset = mutt_choose_charset(mod_cset.charset, mod_cset.send_charset, *s, m_strlen(*s), &d, &dlen); } if (!charset) { - charset = m_strdup(Charset ? Charset : "unknown-8bit"); + charset = m_strdup(mod_cset.charset ?: "unknown-8bit"); d = *s; dlen = m_strlen(d); }