Hi Magnus and all, Magnus Hagander wrote: > Log Message: > ----------- > Explicitly bind gettext() to the UTF8 locale when in use. > This is required on Windows due to the special locale > handling for UTF8 that doesn't change the full environment.
Thanks to this change UTF-8 case was solved but Japanese users are still unhappy with Windows databases with EUC_JP encoding. Shift_JIS which is a Japanese encoding under Windows doesn't match any server encoding and causes a crash with the use of gettext. So Saito-san removed ja message catalog just before the 8.3 release. Attached is a simple patch to avoid the crash and enable the use of Japanese message catalog. Please apply the patch if there's no problem. regards, Hiroshi Inoue > Fixes crash with translated error messages per bugs 4180 > and 4196. > > Tom Lane > > Modified Files: > -------------- > pgsql/src/backend/utils/mb: > mbutils.c (r1.70 -> r1.71) > > (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/mb/mbutils.c?r1=1.70&r2=1.71) >
*** mbutils.c.orig Sun Nov 23 08:42:57 2008 --- mbutils.c Sun Nov 23 13:52:41 2008 *************** *** 825,830 **** --- 825,832 ---- void SetDatabaseEncoding(int encoding) { + const char *target_codeset = NULL; + if (!PG_VALID_BE_ENCODING(encoding)) elog(ERROR, "invalid database encoding: %d", encoding); *************** *** 846,852 **** */ #ifdef ENABLE_NLS if (encoding == PG_UTF8) ! if (bind_textdomain_codeset("postgres", "UTF-8") == NULL) elog(LOG, "bind_textdomain_codeset failed"); #endif } --- 848,860 ---- */ #ifdef ENABLE_NLS if (encoding == PG_UTF8) ! target_codeset = "UTF-8"; ! #ifdef WIN32 ! else if (encoding == PG_EUC_JP) ! target_codeset = "EUC_JP"; ! #endif /* WIN32 */ ! if (NULL != target_codeset) ! if (bind_textdomain_codeset("postgres", target_codeset) == NULL) elog(LOG, "bind_textdomain_codeset failed"); #endif }
-- Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-committers