Thread: mb support fix

mb support fix

From
Tatsuo Ishii
Date:
Included patches fix a portability problem of unsetenv() used in
6.4.2 multi-byte support. unsetenv() is only avaliable on FreeBSD and
Linux so I decided to replace with putenv().
--
Tatsuo Ishii
t-ishii@sra.co.jp
----------------------------- cut here ----------------------------
*** postgresql-6.4.2/src/bin/psql/psql.c.orig    Wed Jan  6 13:25:45 1999
--- postgresql-6.4.2/src/bin/psql/psql.c    Wed Jan  6 13:26:27 1999
***************
*** 1498,1504 ****            PGCLIENTENCODING value. -- 1998/12/12 Tatsuo Ishii */                     if
(!has_client_encoding){
 
!             unsetenv("PGCLIENTENCODING");         } #endif 
--- 1498,1505 ----            PGCLIENTENCODING value. -- 1998/12/12 Tatsuo Ishii */                     if
(!has_client_encoding){
 
!                 static const char ev[] = "PGCLIENTENCODING=";
!             putenv(ev);         } #endif 
*** postgresql-6.4.2/src/interfaces/libpq/fe-print.c.orig    Wed Jan  6 13:27:21 1999
--- postgresql-6.4.2/src/interfaces/libpq/fe-print.c    Wed Jan  6 13:29:19 1999
***************
*** 506,512 ****     int            encoding = -1;      str = getenv("PGCLIENTENCODING");
!     if (str)         encoding = pg_char_to_encoding(str);     if (encoding < 0)         encoding = MULTIBYTE;
--- 506,512 ----     int            encoding = -1;      str = getenv("PGCLIENTENCODING");
!     if (str && *str != NULL)         encoding = pg_char_to_encoding(str);     if (encoding < 0)         encoding =
MULTIBYTE;
*** postgresql-6.4.2/src/interfaces/libpq/fe-connect.c.orig    Wed Jan  6 13:29:47 1999
--- postgresql-6.4.2/src/interfaces/libpq/fe-connect.c    Wed Jan  6 13:30:55 1999
***************
*** 813,819 **** #ifdef MULTIBYTE     /* query server encoding */     env = getenv(envname);
!     if (!env)     {         rtn = PQexec(conn, "select getdatabaseencoding()");         if (rtn &&
PQresultStatus(rtn)== PGRES_TUPLES_OK)
 
--- 813,819 ---- #ifdef MULTIBYTE     /* query server encoding */     env = getenv(envname);
!     if (!env || *env == NULL)     {         rtn = PQexec(conn, "select getdatabaseencoding()");         if (rtn &&
PQresultStatus(rtn)== PGRES_TUPLES_OK)
 


Re: [PATCHES] mb support fix

From
The Hermit Hacker
Date:
Applied...


On Wed, 27 Jan 1999, Tatsuo Ishii wrote:

> Included patches fix a portability problem of unsetenv() used in
> 6.4.2 multi-byte support. unsetenv() is only avaliable on FreeBSD and
> Linux so I decided to replace with putenv().
> --
> Tatsuo Ishii
> t-ishii@sra.co.jp
> ----------------------------- cut here ----------------------------
> *** postgresql-6.4.2/src/bin/psql/psql.c.orig    Wed Jan  6 13:25:45 1999
> --- postgresql-6.4.2/src/bin/psql/psql.c    Wed Jan  6 13:26:27 1999
> ***************
> *** 1498,1504 ****
>              PGCLIENTENCODING value. -- 1998/12/12 Tatsuo Ishii */
>              
>           if (!has_client_encoding) {
> !             unsetenv("PGCLIENTENCODING");
>           }
>   #endif
>   
> --- 1498,1505 ----
>              PGCLIENTENCODING value. -- 1998/12/12 Tatsuo Ishii */
>              
>           if (!has_client_encoding) {
> !                 static const char ev[] = "PGCLIENTENCODING=";
> !             putenv(ev);
>           }
>   #endif
>   
> *** postgresql-6.4.2/src/interfaces/libpq/fe-print.c.orig    Wed Jan  6 13:27:21 1999
> --- postgresql-6.4.2/src/interfaces/libpq/fe-print.c    Wed Jan  6 13:29:19 1999
> ***************
> *** 506,512 ****
>       int            encoding = -1;
>   
>       str = getenv("PGCLIENTENCODING");
> !     if (str)
>           encoding = pg_char_to_encoding(str);
>       if (encoding < 0)
>           encoding = MULTIBYTE;
> --- 506,512 ----
>       int            encoding = -1;
>   
>       str = getenv("PGCLIENTENCODING");
> !     if (str && *str != NULL)
>           encoding = pg_char_to_encoding(str);
>       if (encoding < 0)
>           encoding = MULTIBYTE;
> *** postgresql-6.4.2/src/interfaces/libpq/fe-connect.c.orig    Wed Jan  6 13:29:47 1999
> --- postgresql-6.4.2/src/interfaces/libpq/fe-connect.c    Wed Jan  6 13:30:55 1999
> ***************
> *** 813,819 ****
>   #ifdef MULTIBYTE
>       /* query server encoding */
>       env = getenv(envname);
> !     if (!env)
>       {
>           rtn = PQexec(conn, "select getdatabaseencoding()");
>           if (rtn && PQresultStatus(rtn) == PGRES_TUPLES_OK)
> --- 813,819 ----
>   #ifdef MULTIBYTE
>       /* query server encoding */
>       env = getenv(envname);
> !     if (!env || *env == NULL)
>       {
>           rtn = PQexec(conn, "select getdatabaseencoding()");
>           if (rtn && PQresultStatus(rtn) == PGRES_TUPLES_OK)
> 

Marc G. Fournier                                
Systems Administrator @ hub.org 
primary: scrappy@hub.org           secondary: scrappy@{freebsd|postgresql}.org