From: Tatsuo Ishii Date: Fri, 17 Nov 2000 04:22:52 +0000 (+0000) Subject: Recongizing PGCLIENTENCODING has been broken since 7.0. X-Git-Tag: REL7_1_BETA~155 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=afde2acc507a131deca7aad5e069b9c68be76365;p=postgresql Recongizing PGCLIENTENCODING has been broken since 7.0. --- diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c index a26f7ac5cc..1703c55463 100644 --- a/src/interfaces/libpq/fe-connect.c +++ b/src/interfaces/libpq/fe-connect.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.147 2000/11/14 01:15:06 momjian Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.148 2000/11/17 04:22:52 ishii Exp $ * *------------------------------------------------------------------------- */ @@ -1608,10 +1608,11 @@ keep_going: /* We will come back to here until there { const char *env; - /* query server encoding */ env = getenv(envname); if (!env || *env == '\0') { + /* query server encoding if PGCLIENTENCODING + is not specified */ if (!PQsendQuery(conn, "select getdatabaseencoding()")) goto error_return; @@ -1619,6 +1620,19 @@ keep_going: /* We will come back to here until there conn->setenv_state = SETENV_STATE_ENCODINGS_WAIT; return PGRES_POLLING_READING; } + else + { + /* otherwise set client encoding in pg_conn struct */ + int encoding = pg_char_to_encoding(env); + if (encoding < 0) + { + strcpy(conn->errorMessage.data, + "PGCLIENTENCODING has no valid encoding name.\n"); + goto error_return; + } + conn->client_encoding = encoding; + } + } case SETENV_STATE_ENCODINGS_WAIT: