+2005-09-18 [colin] 1.9.14cvs39
+
+ * src/codeconv.c
+ * src/compose.c
+ * src/procmime.c
+ More charsets fixes. Fixes bug #806 (non
+ ascii characters in subject line)
+
2005-09-17 [paul] 1.9.14cvs38
* src/folderview.c
( cvs diff -u -r 1.60.2.22 -r 1.60.2.23 src/prefs_actions.c; cvs diff -u -r 1.16.2.13 -r 1.16.2.14 src/prefs_customheader.c; cvs diff -u -r 1.16.2.13 -r 1.16.2.14 src/prefs_display_header.c; cvs diff -u -r 1.1.4.18 -r 1.1.4.19 src/prefs_filtering_action.c; cvs diff -u -r 1.43.2.23 -r 1.43.2.24 src/prefs_matcher.c; cvs diff -u -r 1.30.2.16 -r 1.30.2.17 src/prefs_toolbar.c; ) > 1.9.14cvs36.patchset
( cvs diff -u -r 1.28.2.9 -r 1.28.2.10 src/addrindex.c; ) > 1.9.14cvs37.patchset
( cvs diff -u -r 1.207.2.63 -r 1.207.2.64 src/folderview.c; cvs diff -u -r 1.274.2.65 -r 1.274.2.66 src/mainwindow.c; ) > 1.9.14cvs38.patchset
+( cvs diff -u -r 1.65.2.35 -r 1.65.2.36 src/codeconv.c; cvs diff -u -r 1.382.2.170 -r 1.382.2.171 src/compose.c; cvs diff -u -r 1.49.2.60 -r 1.49.2.61 src/procmime.c; ) > 1.9.14cvs39.patchset
MICRO_VERSION=14
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=38
+EXTRA_VERSION=39
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
tmpstr = conv_iconv_strdup(inbuf, conv_get_locale_charset_str(),
CS_INTERNAL);
- if (tmpstr) {
+ if (tmpstr && g_utf8_validate(tmpstr, -1, NULL)) {
strncpy2(outbuf, tmpstr, outlen);
g_free(tmpstr);
+ } else if (tmpstr && !g_utf8_validate(tmpstr, -1, NULL)) {
+ g_free(tmpstr);
+ conv_utf8todisp(outbuf, outlen, inbuf);
} else
conv_utf8todisp(outbuf, outlen, inbuf);
}
/* Subject */
str = gtk_editable_get_chars(GTK_EDITABLE(compose->subject_entry), 0, -1);
+
if (*str != '\0' && !IS_IN_CUSTOM_HEADER("Subject")) {
g_strstrip(str);
if (*str != '\0') {
subst_char(tmpstr, '\r', ' ');
g_strchomp(tmpstr);
+ if (!g_utf8_validate(tmpstr, -1, NULL)) {
+ gchar *mybuf = g_malloc(strlen(tmpstr)*2 +1);
+ conv_localetodisp(mybuf, strlen(tmpstr)*2 +1, tmpstr);
+ g_free(tmpstr);
+ tmpstr = mybuf;
+ }
conv_encode_header_full(dest, len, tmpstr, header_len, addr_field,
conv_get_charset_str(compose->out_encoding));
g_free(tmpstr);
mimeinfo->type = MIMETYPE_TEXT;
mimeinfo->subtype = g_strdup("plain");
if (g_hash_table_lookup(mimeinfo->typeparameters,
- "charset") == NULL)
- g_hash_table_insert(mimeinfo->typeparameters,
+ "charset") == NULL) {
+ if (strcmp(conv_get_locale_charset_str(), CS_UTF_8))
+ g_hash_table_insert(mimeinfo->typeparameters,
g_strdup("charset"),
g_strdup(conv_get_locale_charset_str()));
+ else
+ g_hash_table_insert(mimeinfo->typeparameters,
+ g_strdup("charset"),
+ g_strdup(CS_ISO_8859_1));
+ }
} else {
gchar *type, *subtype, *params;
mimeinfo->type = MIMETYPE_TEXT;
mimeinfo->subtype = g_strdup("plain");
if (g_hash_table_lookup(mimeinfo->typeparameters,
- "charset") == NULL)
- g_hash_table_insert(mimeinfo->typeparameters, g_strdup("charset"),
- g_strdup(conv_get_locale_charset_str()));
+ "charset") == NULL) {
+ if (strcmp(conv_get_locale_charset_str(), CS_UTF_8))
+ g_hash_table_insert(mimeinfo->typeparameters,
+ g_strdup("charset"),
+ g_strdup(conv_get_locale_charset_str()));
+ else
+ g_hash_table_insert(mimeinfo->typeparameters,
+ g_strdup("charset"),
+ g_strdup(CS_ISO_8859_1));
+ }
}
if (content_encoding != NULL) {