aboutsummaryrefslogtreecommitdiff
path: root/src/bin/psql/mbprint.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2003-07-27 03:32:26 +0000
committerBruce Momjian <bruce@momjian.us>2003-07-27 03:32:26 +0000
commit9df48371c20869ac63a63b45550dbf4b045aa4bf (patch)
treed01352587f18c4d1ba7827295a5a9aa06ffe5feb /src/bin/psql/mbprint.c
parente7fe89d57ddda6ad35c68bfcf1d78c2fe0caac4e (diff)
downloadpostgresql-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.c14
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