- do {
- if (encoded && par->encoded)
- rfc2231_decode_one (par->value, valp);
-
- vl = m_strlen(par->value);
-
- p_realloc(&value, l + vl + 1);
- strcpy (value + l, par->value); /* __STRCPY_CHECKED__ */
- l += vl;
-
- q = par->next;
- rfc2231_parameter_delete (&par);
- if ((par = q))
- 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 = mutt_new_parameter ();
- (*head)->attribute = m_strdup(attribute);
- (*head)->value = value;
- head = &(*head)->next;
- }
- }
-}
-
-int rfc2231_encode_string (char **pd)
-{
- int ext = 0, encode = 0;
- char *charset, *s, *t, *e, *d = 0;
- size_t slen, dlen = 0;
-
- /*