2005-04-20 [paul] 1.9.6cvs43
authorPaul Mangan <paul@claws-mail.org>
Wed, 20 Apr 2005 04:14:07 +0000 (04:14 +0000)
committerPaul Mangan <paul@claws-mail.org>
Wed, 20 Apr 2005 04:14:07 +0000 (04:14 +0000)
* src/codeconv.c
complete 1.9.6cvs42's sync:
Fallback to GBK if "X-GBK" is passed (thanks to SuperMMX)

ChangeLog-gtk2.claws
PATCHSETS
configure.ac
src/codeconv.c

index 4375538604eb6f29fbc057619daadf5ab49d81fd..ace64d7736725dc521433e2b68fcef9c552ae761 100644 (file)
@@ -1,3 +1,9 @@
+2005-04-20 [paul]      1.9.6cvs43
+
+       * src/codeconv.c
+               complete 1.9.6cvs42's sync:
+               Fallback to GBK if "X-GBK" is passed (thanks to SuperMMX)
+
 2005-04-19 [paul]      1.9.6cvs42
 
        sync with main:
@@ -10,8 +16,7 @@
        * src/mainwindow.c
        * src/messageview.c
        * src/prefs_common.c
-               support GBK encoding. Fallback to GBK if "X-GBK"
-               is passed (thanks to SuperMMX)
+               support GBK encoding.
        * src/common/session.c
        * src/common/session.h
                use separate buffer for large data to be sent,
index 87acf0e78d82792635ee58d0b129d689fdd4effb..c630ffb078cdde5a0420b6608a448f740009ee74 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.382.2.117 -r 1.382.2.118 src/compose.c; ) > 1.9.6cvs40.patchset
 ( cvs diff -u -r 1.18.2.7 -r 1.18.2.8 src/jpilot.c; ) > 1.9.6cvs41.patchset
 ( cvs diff -u -r 1.12.2.21 -r 1.12.2.22 src/action.c; cvs diff -u -r 1.65.2.26 -r 1.65.2.27 src/codeconv.c; cvs diff -u -r 1.15.2.6 -r 1.15.2.7 src/codeconv.h; cvs diff -u -r 1.274.2.34 -r 1.274.2.35 src/mainwindow.c; cvs diff -u -r 1.94.2.49 -r 1.94.2.50 src/messageview.c; cvs diff -u -r 1.204.2.34 -r 1.204.2.35 src/prefs_common.c; cvs diff -u -r 1.23.2.4 -r 1.23.2.5 src/common/session.c; cvs diff -u -r 1.8.2.2 -r 1.8.2.3 src/common/session.h; ) > 1.9.6cvs42.patchset
+( cvs diff -u -r 1.1.2.498 -r 1.1.2.499 ChangeLog-gtk2.claws; cvs diff -u -r 1.65.2.27 -r 1.65.2.28 src/codeconv.c; ) > 1.9.6cvs43.patchset
index 5ecf4b8007bd3366e0e8c8f0cbd0f13f370d388f..3aff40a718749ff37bc4dbe9fdaf402316a84966 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=6
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=42
+EXTRA_VERSION=43
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index dbfa47761a899c8d5e836946ebf58b04e0235d78..71f8804b8c70fd077d2bc5f7dfaeacc50f12763b 100644 (file)
@@ -825,10 +825,24 @@ static void conv_noconv(gchar *outbuf, gint outlen, const gchar *inbuf)
        strncpy2(outbuf, inbuf, outlen);
 }
 
+static const gchar *
+conv_get_fallback_for_private_encoding(const gchar *encoding)
+{
+       if (encoding && (encoding[0] == 'X' || encoding[0] == 'x') &&
+           encoding[1] == '-') {
+               if (!g_ascii_strcasecmp(encoding, CS_X_GBK))
+                       return CS_GBK;
+       }
+
+       return encoding;
+}
+
 CodeConverter *conv_code_converter_new(const gchar *src_charset)
 {
        CodeConverter *conv;
 
+       src_charset = conv_get_fallback_for_private_encoding(src_charset);
+
        conv = g_new0(CodeConverter, 1);
        conv->code_conv_func = conv_get_code_conv_func(src_charset, NULL);
        conv->charset_str = g_strdup(src_charset);
@@ -870,6 +884,7 @@ gchar *conv_codeset_strdup(const gchar *inbuf,
        size_t len;
        CodeConvFunc conv_func;
 
+       src_code = conv_get_fallback_for_private_encoding(src_code);
        conv_func = conv_get_code_conv_func(src_code, dest_code);
        if (conv_func != conv_noconv) {
                len = (strlen(inbuf) + 1) * 3;