diff options
author | Bruce Momjian <bruce@momjian.us> | 2003-07-27 03:32:26 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2003-07-27 03:32:26 +0000 |
commit | 9df48371c20869ac63a63b45550dbf4b045aa4bf (patch) | |
tree | d01352587f18c4d1ba7827295a5a9aa06ffe5feb /src/bin/psql/mbprint.c | |
parent | e7fe89d57ddda6ad35c68bfcf1d78c2fe0caac4e (diff) | |
download | postgresql-9df48371c20869ac63a63b45550dbf4b045aa4bf.tar.gz postgresql-9df48371c20869ac63a63b45550dbf4b045aa4bf.zip |
here are the patches for psql on Win32:
psql4win32.patch - changes in the psql source code
psql-ref.patch - changes in the documentation psql-ref.sgml
(for new builtin variable WIN32_CONSOLE)
To apply them use "patch -p 1" in the root directory of the
postgres source directory.
These patches fix the following problems of psql on Win32
(all changes only have effect #ifdef WIN32):
a) Problem: Static library libpq.a did not work
Solution: Added WSAStartup() in fe-connect.c
b) Problem: Secret Password was echoed by psql
Solution: Password echoing disabled in sprompt.c
c) Problem: 8bit characters were displayed/interpreted wrong in psql
This is due to the fact that the Win32 "console" uses a
different encoding than the rest of the Windows system
Solution: Introduced a new psql variable WIN32_CONSOLE
When set with "\set WIN32_console", the function OemToChar()
is applied after reading input and CharToOem() before
displaying Output
Christoph Dalitz
Diffstat (limited to 'src/bin/psql/mbprint.c')
-rw-r--r-- | src/bin/psql/mbprint.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/bin/psql/mbprint.c b/src/bin/psql/mbprint.c index 692f60bf775..437d7271c0d 100644 --- a/src/bin/psql/mbprint.c +++ b/src/bin/psql/mbprint.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/mbprint.c,v 1.6 2003/03/18 22:15:44 petere Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/mbprint.c,v 1.7 2003/07/27 03:32:26 momjian Exp $ */ #include "postgres_fe.h" @@ -11,6 +11,10 @@ #include "mb/pg_wchar.h" +#ifdef WIN32 +#include <windows.h> +#endif + /* * This is an implementation of wcwidth() and wcswidth() as defined in * "The Single UNIX Specification, Version 2, The Open Group, 1997" @@ -330,6 +334,14 @@ mbvalidate(unsigned char *pwcs, int encoding) return mb_utf_validate(pwcs); else { +#ifdef WIN32 + /* + * translate characters to DOS console encoding, e.g. needed + * for German umlauts + */ + if (GetVariableBool(pset.vars, "WIN32_CONSOLE")) + CharToOem(pwcs, pwcs); +#endif /* * other encodings needing validation should add their own * routines here |