23 lines
901 B
C
23 lines
901 B
C
--- src/tds/iconv.c.orig Sat Jan 13 16:27:13 2007
|
|
+++ src/tds/iconv.c Sat Jan 13 16:29:24 2007
|
|
@@ -973,13 +973,18 @@ tds_srv_charset_changed(TDSSOCKET * tds,
|
|
#if HAVE_ICONV_ALWAYS
|
|
TDSICONV *char_conv = tds->char_convs[client2server_chardata];
|
|
|
|
- const char *canonic_charset = tds_canonical_charset_name(charset);
|
|
+ int canonic_charset_num = tds_canonical_charset(charset);
|
|
+ const char *canonic_charset;
|
|
+
|
|
+ if (tds->major_version >= 7 && canonic_charset_num == TDS_CHARSET_ISO_8859_1)
|
|
+ canonic_charset_num = TDS_CHARSET_CP1252;
|
|
|
|
/* ignore request to change to unknown charset */
|
|
- if (!canonic_charset) {
|
|
+ if (canonic_charset_num < 0) {
|
|
tdsdump_log(TDS_DBG_FUNC, "tds_srv_charset_changed: what is charset \"%s\"?\n", charset);
|
|
return;
|
|
}
|
|
+ canonic_charset = canonic_charsets[canonic_charset_num].name;
|
|
|
|
if (strcmp(canonic_charset, char_conv->server_charset.name) == 0)
|
|
return;
|