}
NEW(entry);
- entry->filename = getcpy(s);
+ entry->filename = mh_xstrdup(s);
entry->next = NULL;
free(vp);
adios (NULL, "Multiple %s headers with different files"
" not allowed", type);
} else {
- convert->filename = getcpy (filename);
+ convert->filename = mh_xstrdup(filename);
}
} else {
NEW0(convert);
- convert->filename = getcpy (filename);
- convert->type = getcpy (type);
+ convert->filename = mh_xstrdup(filename);
+ convert->type = mh_xstrdup(type);
if (convert_tail) {
convert_tail->next = convert;
adios (NULL, "Multiple %s headers with different "
"argstrings not allowed", type);
} else {
- convert->argstring = getcpy (argstring);
+ convert->argstring = mh_xstrdup(argstring);
}
} else {
NEW0(convert);
- convert->type = getcpy (type);
- convert->argstring = getcpy (argstring);
+ convert->type = mh_xstrdup(type);
+ convert->argstring = mh_xstrdup(argstring);
if (convert_tail) {
convert_tail->next = convert;
if ((cp = strchr(prefix, 'a')) == NULL)
adios (NULL, "internal error(4)");
+ /*
+ * If using EAI, force 8-bit charset.
+ */
+ if (header_encoding == CE_8BIT) {
+ set_charset (ct, 1);
+ }
+
/*
* Scan the contents. Choose a transfer encoding, and
* check if prefix for multipart boundary clashes with
time (&clock);
snprintf (contentid, sizeof(contentid), "%s\n", message_id (clock, 1));
partno = 0;
- msgfmt = getcpy(contentid);
+ msgfmt = mh_xstrdup(contentid);
}
snprintf (contentid, sizeof(contentid), msgfmt, top ? 0 : ++partno);
- ct->c_id = getcpy (contentid);
+ ct->c_id = mh_xstrdup(contentid);
}
vp = add("\n", vp);
if (np)
free(np);
- add_header (ct, getcpy(DISPO_FIELD), vp);
+ add_header (ct, mh_xstrdup(DISPO_FIELD), vp);
}
skip_headers:
/*
* output the Content-Transfer-Encoding
+ * If using EAI and message body is 7-bit, force 8-bit C-T-E.
*/
+ if (header_encoding == CE_8BIT && ct->c_encoding == CE_7BIT) {
+ ct->c_encoding = CE_8BIT;
+ }
+
switch (ct->c_encoding) {
case CE_7BIT:
/* Nothing to output */
if (strcasecmp(pm->pm_name, "name") == 0) {
if (pm->pm_value)
free(pm->pm_value);
- pm->pm_value = getcpy(simplename);
+ pm->pm_value = mh_xstrdup(simplename);
break;
}
}
add_param(&ct->c_ctinfo.ci_first_pm, &ct->c_ctinfo.ci_last_pm,
"name", simplename, 0);
- ct->c_descr = getcpy(simplename);
+ ct->c_descr = mh_xstrdup(simplename);
ct->c_descr = add("\n", ct->c_descr);
- ct->c_cefile.ce_file = getcpy(filename);
+ ct->c_cefile.ce_file = mh_xstrdup(filename);
set_disposition (ct);
cp);
}
- ct->c_dispo_type = cp ? getcpy (cp) : mh_xstrdup("attachment");
+ if (!cp)
+ cp = "attachment";
+ ct->c_dispo_type = mh_xstrdup(cp);
}
}
NULL);
/* Convert here . . . */
- ct->c_storeproc = getcpy (convert_command);
+ ct->c_storeproc = mh_xstrdup(convert_command);
ct->c_umask = ~m_gmprot ();
if ((status = show_content_aux (ct, 0, convert_command, NULL, NULL)) !=