From 1a581391689f65a38e4c7aec86183a9cdeea883a Mon Sep 17 00:00:00 2001 From: Tatsuo Ishii Date: Thu, 6 Sep 2001 04:57:30 +0000 Subject: [PATCH] Commit Karel's patch. ------------------------------------------------------------------- Subject: Re: [PATCHES] encoding names From: Karel Zak To: Peter Eisentraut Cc: pgsql-patches Date: Fri, 31 Aug 2001 17:24:38 +0200 On Thu, Aug 30, 2001 at 01:30:40AM +0200, Peter Eisentraut wrote: > > - convert encoding 'name' to 'id' > > I thought we decided not to add functions returning "new" names until we > know exactly what the new names should be, and pending schema Ok, the patch not to add functions. > better > > ...(): encoding name too long Fixed. I found new bug in command/variable.c in parse_client_encoding(), nobody probably never see this error: if (pg_set_client_encoding(encoding)) { elog(ERROR, "Conversion between %s and %s is not supported", value, GetDatabaseEncodingName()); } because pg_set_client_encoding() returns -1 for error and 0 as true. It's fixed too. IMHO it can be apply. Karel PS: * following files are renamed: src/utils/mb/Unicode/KOI8_to_utf8.map --> src/utils/mb/Unicode/koi8r_to_utf8.map src/utils/mb/Unicode/WIN_to_utf8.map --> src/utils/mb/Unicode/win1251_to_utf8.map src/utils/mb/Unicode/utf8_to_KOI8.map --> src/utils/mb/Unicode/utf8_to_koi8r.map src/utils/mb/Unicode/utf8_to_WIN.map --> src/utils/mb/Unicode/utf8_to_win1251.map * new file: src/utils/mb/encname.c * removed file: src/utils/mb/common.c -- Karel Zak http://home.zf.jcu.cz/~zakkr/ C, PostgreSQL, PHP, WWW, http://docs.linux.cz, http://mape.jcu.cz --- multibyte.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/multibyte.c b/multibyte.c index a9c9c2f..dec9a33 100644 --- a/multibyte.c +++ b/multibyte.c @@ -70,12 +70,18 @@ multibyte_init(void) unsigned char * check_client_encoding(unsigned char *str) { - if (strstr(str, "%27SJIS%27") || strstr(str, "'SJIS'") || strstr(str, "'sjis'")) + if (strstr(str, "%27SJIS%27") || + strstr(str, "'SJIS'") || + strstr(str, "'sjis'") || + strstr(str, "'Shift_JIS'")) { multibyte_client_encoding = SJIS; return ("SJIS"); } - if (strstr(str, "%27BIG5%27") || strstr(str, "'BIG5'") || strstr(str, "'big5'")) + if (strstr(str, "%27BIG5%27") || + strstr(str, "'BIG5'") || + strstr(str, "'big5'") + strstr(str, "'Big5'")) { multibyte_client_encoding = BIG5; return ("BIG5"); -- 2.39.5