From 1e22e605050eded6ed49f049678782dba9e864cf Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Mon, 4 Dec 2006 22:23:40 +0000 Subject: [PATCH] Patch of Win32 Encoding problem for server messages using FormatMessage() (This should have been in 8.2.0, patched to 8.2.X and HEAD): I think this problem to be complex.... http://archives.postgresql.org/pgsql-hackers/2006-11/msg00042.php FormatMessage of windows cannot consider the encoding of the database. However, I should try the solution now. It is necessary to clear the problem. Multi character-code exists together in message and log. It doesn't consider the data base encoding that the user intended.... The user in multi-byte country can try this. http://inet.winpg.jp/~saito/pg_bug/MessageCheck.c That is, it is likely to become it in this manner.(Japanese) http://inet.winpg.jp/~saito/pg_bug/FormatMessage998.png Hiroshi Saito --- src/backend/port/dynloader/win32.c | 4 ++-- src/backend/port/win32/socket.c | 4 ++-- src/interfaces/libpq/win32.c | 2 +- src/port/dirmod.c | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/backend/port/dynloader/win32.c b/src/backend/port/dynloader/win32.c index 72d27fddcd..980b424b97 100644 --- a/src/backend/port/dynloader/win32.c +++ b/src/backend/port/dynloader/win32.c @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/src/backend/port/dynloader/win32.c,v 1.8 2006/06/07 22:24:43 momjian Exp $ */ +/* $PostgreSQL: pgsql/src/backend/port/dynloader/win32.c,v 1.9 2006/12/04 22:23:40 momjian Exp $ */ #include "postgres.h" @@ -18,7 +18,7 @@ set_dl_error(void) FORMAT_MESSAGE_FROM_SYSTEM, NULL, err, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT), last_dyn_error, sizeof(last_dyn_error) - 1, NULL) == 0) diff --git a/src/backend/port/win32/socket.c b/src/backend/port/win32/socket.c index 6489c64dae..0dc62a4811 100644 --- a/src/backend/port/win32/socket.c +++ b/src/backend/port/win32/socket.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/port/win32/socket.c,v 1.14 2006/10/13 13:59:47 teodor Exp $ + * $PostgreSQL: pgsql/src/backend/port/win32/socket.c,v 1.15 2006/12/04 22:23:40 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -582,7 +582,7 @@ pgwin32_socket_strerror(int err) if (FormatMessage(FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_FROM_HMODULE, handleDLL, err, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT), wserrbuf, sizeof(wserrbuf) - 1, NULL) == 0) diff --git a/src/interfaces/libpq/win32.c b/src/interfaces/libpq/win32.c index a4ec2ebb70..00f0e0073d 100644 --- a/src/interfaces/libpq/win32.c +++ b/src/interfaces/libpq/win32.c @@ -309,7 +309,7 @@ winsock_strerror(int err, char *strerrbuf, size_t buflen) success = 0 != FormatMessage( flags, dlls[i].handle, err, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT), strerrbuf, buflen - 64, 0 ); diff --git a/src/port/dirmod.c b/src/port/dirmod.c index 3934b5cf7d..5f4f97e9c1 100644 --- a/src/port/dirmod.c +++ b/src/port/dirmod.c @@ -10,7 +10,7 @@ * Win32 (NT, Win2k, XP). replace() doesn't work on Win95/98/Me. * * IDENTIFICATION - * $PostgreSQL: pgsql/src/port/dirmod.c,v 1.44 2006/11/08 20:12:05 tgl Exp $ + * $PostgreSQL: pgsql/src/port/dirmod.c,v 1.45 2006/12/04 22:23:40 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -254,7 +254,7 @@ pgsymlink(const char *oldpath, const char *newpath) errno = 0; FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT), (LPSTR) & msg, 0, NULL); #ifndef FRONTEND ereport(ERROR,