Commit Karel's patch.
authorTatsuo Ishii <ishii@postgresql.org>
Thu, 6 Sep 2001 04:57:30 +0000 (04:57 +0000)
committerTatsuo Ishii <ishii@postgresql.org>
Thu, 6 Sep 2001 04:57:30 +0000 (04:57 +0000)
-------------------------------------------------------------------
Subject: Re: [PATCHES] encoding names
From: Karel Zak <zakkr@zf.jcu.cz>
To: Peter Eisentraut <peter_e@gmx.net>
Cc: pgsql-patches <pgsql-patches@postgresql.org>
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  <zakkr@zf.jcu.cz>
 http://home.zf.jcu.cz/~zakkr/

 C, PostgreSQL, PHP, WWW, http://docs.linux.cz, http://mape.jcu.cz

multibyte.c

index a9c9c2f83bb1c5d5a0c351e3d284feb16fe4ddcc..dec9a33a2e8b453631e161f9d7cc057f69397408 100644 (file)
@@ -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");