Commit 9e467671 authored by Bruce Momjian's avatar Bruce Momjian

The attached patch should be sufficient to fix libpgtcl. It requires

PostgreSQL to support unicode-conversion, but retains binary
compatibility among Tcl versions.

However, it neither checks at compile time not at runtime, if support
for unicode-conversion does really exist and it doesn't prevent the
user from changing the client encoding after initialization. I think
there should be warnings about this somewhere in the documentation.

Reinhard Max
parent 0ee85f85
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtcl.c,v 1.21 2001/03/22 04:01:23 momjian Exp $ * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtcl.c,v 1.22 2001/09/10 14:49:12 momjian Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
int int
Pgtcl_Init(Tcl_Interp *interp) Pgtcl_Init(Tcl_Interp *interp)
{ {
double tclversion;
/* /*
* finish off the ChannelType struct. Much easier to do it here then * finish off the ChannelType struct. Much easier to do it here then
...@@ -39,6 +40,13 @@ Pgtcl_Init(Tcl_Interp *interp) ...@@ -39,6 +40,13 @@ Pgtcl_Init(Tcl_Interp *interp)
Pg_ConnType.getFileProc = PgGetFileProc; Pg_ConnType.getFileProc = PgGetFileProc;
#endif #endif
/*
* Tcl versions >= 8.1 use UTF-8 for their internal string representation.
* Therefore PGCLIENTENCODING must be set to UNICODE for these versions.
*/
Tcl_GetDouble(interp, Tcl_GetVar(interp, "tcl_version", TCL_GLOBAL_ONLY), &tclversion);
if (tclversion >= 8.1) setenv("PGCLIENTENCODING", "UNICODE", 1);
/* register all pgtcl commands */ /* register all pgtcl commands */
Tcl_CreateCommand(interp, Tcl_CreateCommand(interp,
"pg_conndefaults", "pg_conndefaults",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment