Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces')
-rw-r--r--src/interfaces/libpq/Makefile.in4
-rw-r--r--src/interfaces/libpq/fe-connect.c33
-rw-r--r--src/interfaces/libpq/pqmbutils.c2
-rw-r--r--src/interfaces/libpq/pqutils.c1
4 files changed, 34 insertions, 6 deletions
diff --git a/src/interfaces/libpq/Makefile.in b/src/interfaces/libpq/Makefile.in
index 6f7b7170d8f..60994c9ff50 100644
--- a/src/interfaces/libpq/Makefile.in
+++ b/src/interfaces/libpq/Makefile.in
@@ -7,7 +7,7 @@
#
#
# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/interfaces/libpq/Attic/Makefile.in,v 1.23 1998/07/12 18:48:06 momjian Exp $
+# $Header: /cvsroot/pgsql/src/interfaces/libpq/Attic/Makefile.in,v 1.24 1998/07/24 03:32:33 scrappy Exp $
#
#-------------------------------------------------------------------------
@@ -33,7 +33,7 @@ OBJS= fe-auth.o fe-connect.o fe-exec.o fe-misc.o fe-print.o fe-lobj.o \
dllist.o pqsignal.o
ifdef MB
-OBJS+= pqutils.o pqmbutils.o
+OBJS+= common.o wchar.o conv.o
endif
# Shared library stuff
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index 7833f635ac0..5029ec028b9 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.75 1998/07/18 18:34:30 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.76 1998/07/24 03:32:33 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
@@ -44,6 +44,9 @@
#include <crypt.h>
#endif
+#ifdef MB
+#include "mb/pg_wchar.h"
+#endif
static ConnStatusType connectDB(PGconn *conn);
static PGconn *makeEmptyPGconn(void);
@@ -789,6 +792,34 @@ PQsetenv(PGconn *conn)
{
struct EnvironmentOptions *eo;
char setQuery[80]; /* mjl: size okay? XXX */
+#ifdef MB
+ char *envname = "PGCLIENTENCODING";
+ char envbuf[64];
+ char *env;
+ char *encoding = 0;
+ PGresult *rtn;
+#endif
+
+#ifdef MB
+ /* query server encoding */
+ env = getenv(envname);
+ if (!env) {
+ rtn = PQexec(conn, "select getdatabaseencoding()");
+ if (rtn && PQresultStatus(rtn) == PGRES_TUPLES_OK) {
+ encoding = PQgetvalue(rtn,0,0);
+ if (encoding) {
+ /* set client encoding */
+ sprintf(envbuf,"%s=%s",envname,encoding);
+ putenv(envbuf);
+ }
+ PQclear(rtn);
+ }
+ if (!encoding) { /* this should not happen */
+ sprintf(envbuf,"%s=%s",envname,pg_encoding_to_char(MB));
+ putenv(envbuf);
+ }
+ }
+#endif
for (eo = EnvironmentOptions; eo->envName; eo++)
{
diff --git a/src/interfaces/libpq/pqmbutils.c b/src/interfaces/libpq/pqmbutils.c
deleted file mode 100644
index d902f3e036a..00000000000
--- a/src/interfaces/libpq/pqmbutils.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#include "../../backend/commands/mbutils.c"
-
diff --git a/src/interfaces/libpq/pqutils.c b/src/interfaces/libpq/pqutils.c
deleted file mode 100644
index 7e7d7a1470c..00000000000
--- a/src/interfaces/libpq/pqutils.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "../../backend/regex/utils.c"