X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-mime%2Frfc2231.c;h=760bf11ce1ccedc5ce8f90543a212d4325546030;hp=27c9c0e39e46619d3f40f38f163b544da9fd3503;hb=refs%2Fheads%2Ftry-some-d;hpb=ba96e8b86330fb28f25aae2059b732cd64254015 diff --git a/lib-mime/rfc2231.c b/lib-mime/rfc2231.c index 27c9c0e..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, mod_cset.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; @@ -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*'%"