*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;
size_t l, vl;
while (par) {
- value = NULL;
l = 0;
m_strcpy(attribute, sizeof(attribute), par->attribute);
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);
}
/****************************************************************************/
/****************************************************************************/
/* 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;
if (!headp)
return;
- purge_empty_parameters (headp);
+ parameter_purge_empty(headp);
for (last = &head, p = *headp; p; p = q) {
q = p->next;
*headp = head;
if (dirty)
- purge_empty_parameters (headp);
+ parameter_purge_empty(headp);
+#endif
}
#define RFC2231_SPECIALS "@.,;:<>[]\\\"()?/= \t*'%"