- fprintf(fp, "Name: %s\n", tmpl->name);
- if (tmpl->subject && *tmpl->subject != '\0')
- fprintf(fp, "Subject: %s\n", tmpl->subject);
- if (tmpl->to && *tmpl->to != '\0')
- fprintf(fp, "To: %s\n", tmpl->to);
- if (tmpl->cc && *tmpl->cc != '\0')
- fprintf(fp, "Cc: %s\n", tmpl->cc);
- if (tmpl->bcc && *tmpl->bcc != '\0')
- fprintf(fp, "Bcc: %s\n", tmpl->bcc);
+ tmp = conv_codeset_strdup(tmpl->name, src_codeset, dest_codeset);
+ if (!tmp)
+ tmp = g_strdup(tmpl->name);
+ fprintf(fp, "Name: %s\n", tmp ? tmp : "");
+ g_free(tmp);
+
+ if (tmpl->subject && *tmpl->subject != '\0') {
+ tmp = conv_codeset_strdup(tmpl->subject,
+ src_codeset, dest_codeset);
+ if (!tmp)
+ tmp = g_strdup(tmpl->subject);
+ fprintf(fp, "Subject: %s\n", tmp);
+ g_free(tmp);
+ }
+
+ if (tmpl->to && *tmpl->to != '\0') {
+ tmp = conv_codeset_strdup(tmpl->to,
+ src_codeset, dest_codeset);
+ if (!tmp)
+ tmp = g_strdup(tmpl->to);
+ fprintf(fp, "To: %s\n", tmp);
+ g_free(tmp);
+ }
+
+ if (tmpl->cc && *tmpl->cc != '\0') {
+ tmp = conv_codeset_strdup(tmpl->cc,
+ src_codeset, dest_codeset);
+ if (!tmp)
+ tmp = g_strdup(tmpl->cc);
+ fprintf(fp, "Cc: %s\n", tmp);
+ g_free(tmp);
+ }
+
+ if (tmpl->bcc && *tmpl->bcc != '\0') {
+ tmp = conv_codeset_strdup(tmpl->bcc,
+ src_codeset, dest_codeset);
+ if (!tmp)
+ tmp = g_strdup(tmpl->bcc);
+ fprintf(fp, "Bcc: %s\n", tmp);
+ g_free(tmp);
+ }
+