static int
InitText(CT ct)
{
- char buffer[BUFSIZ];
- char *chset = NULL;
- char **ap, **ep, *cp;
+ char **ap, **ep;
struct k2v *kv;
struct text *t;
CI ci = &ct->c_ctinfo;
/* check if content specified a character set */
if (*ap) {
+ /* store its name */
+ ct->c_charset = getcpy(norm_charmap(*ep));
/* match character set or set to CHARSET_UNKNOWN */
for (kv = Charset; kv->kv_key; kv++) {
if (!mh_strcasecmp(*ep, kv->kv_key)) {
- chset = *ep;
break;
}
}
t->tx_charset = CHARSET_UNSPECIFIED;
}
- /*
- ** If we can not handle character set natively,
- ** then check profile for string to modify the
- ** terminal or display method.
- **
- ** termproc is for mhshow, though mhlist -debug prints it, too.
- */
- if (chset != NULL && !check_charset(chset, strlen(chset))) {
- snprintf(buffer, sizeof(buffer), "%s-charset-%s",
- invo_name, chset);
- if ((cp = context_find(buffer)))
- ct->c_termproc = getcpy(cp);
- }
-
return OK;
}
cp = context_find(buffer);
if (cp == NULL || *cp == '\0') {
snprintf(buffer, sizeof(buffer), "%s-suffix-%s", invo_name,
- ci->ci_type);
+ ci->ci_type);
cp = context_find(buffer);
}
if (cp != NULL && *cp != '\0') {
}
if (cp != NULL && *cp != '\0') {
if (ce->ce_unlink) {
- // Temporary file already exists, so we rename to
- // version with extension.
+ /*
+ ** Temporary file already exists, so we rename to
+ ** version with extension.
+ */
char *file_org = strdup(ce->ce_file);
ce->ce_file = add(cp, ce->ce_file);
if (rename(file_org, ce->ce_file)) {
cp = context_find(buffer);
if (cp == NULL || *cp == '\0') {
snprintf(buffer, sizeof(buffer), "%s-suffix-%s", invo_name,
- ci->ci_type);
+ ci->ci_type);
cp = context_find(buffer);
}
if (cp != NULL && *cp != '\0') {