*
*/
-#include <ctype.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <lib-lib/mem.h>
-#include <lib-lib/str.h>
-#include <lib-lib/ascii.h>
+#include <lib-lib/lib-lib.h>
#include <lib-mime/mime.h>
#include "charset.h"
+#include "mutt.h"
typedef struct rfc2231_param {
struct rfc2231_param *next;
*list = par;
}
-static void purge_empty_parameters(PARAMETER **headp)
+static void purge_empty_parameters(parameter_t **headp)
{
while (*headp) {
- PARAMETER *p = *headp;
+ parameter_t *p = *headp;
if (!p->attribute || !p->value) {
- *headp = p->next;
- p->next = NULL;
+ 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 **head, rfc2231_param *par)
+rfc2231_join_continuations(parameter_t **head, rfc2231_param *par)
{
rfc2231_param *q;
vl = m_strlen(par->value);
p_realloc(&value, l + vl + 1);
- strcpy (value + l, par->value); /* __STRCPY_CHECKED__ */
+ m_strcpy(value + l, vl + 1, par->value);
l += vl;
q = par->next;
if (value) {
if (encoded)
- mutt_convert_string (&value, charset, Charset, M_ICONV_HOOK_FROM);
+ mutt_convert_string (&value, charset, MCharset.charset, M_ICONV_HOOK_FROM);
*head = parameter_new();
(*head)->attribute = m_strdup(attribute);
(*head)->value = value;
/****************************************************************************/
/* XXX: MC: not read */
-void rfc2231_decode_parameters (PARAMETER ** headp)
+void rfc2231_decode_parameters (parameter_t ** headp)
{
- PARAMETER *head = NULL;
- PARAMETER **last;
- PARAMETER *p, *q;
+ parameter_t *head = NULL;
+ parameter_t **last;
+ parameter_t *p, *q;
rfc2231_param *conthead = NULL;
rfc2231_param *conttmp;
* Internet Gateways. So we actually decode it.
*/
- if (option (OPTRFC2047PARAMS) && p->value && strstr (p->value, "=?"))
- rfc2047_decode (&p->value);
- else if (!option (OPTSTRICTMIME)) {
- if (mime_which_token(AssumedCharset, -1) == MIME_US_ASCII)
+ if (p->value && strstr(p->value, "=?")) {
+ rfc2047_decode(&p->value);
+ } else {
+ if (mime_which_token(MCharset.assumed_charset, -1) == MIME_US_ASCII)
mutt_convert_nonmime_string(&p->value);
}
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, MCharset.charset, M_ICONV_HOOK_FROM);
*last = p;
last = &p->next;
return 0;
}
- if (Charset && SendCharset) {
- charset = mutt_choose_charset(Charset, SendCharset,
+ if (MCharset.charset && MCharset.send_charset) {
+ charset = mutt_choose_charset(MCharset.charset, MCharset.send_charset,
*s, m_strlen(*s), &d, &dlen);
}
if (!charset) {
- charset = m_strdup(Charset ? Charset : "unknown-8bit");
+ charset = m_strdup(MCharset.charset ?: "unknown-8bit");
d = *s;
dlen = m_strlen(d);
}