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)

Wed, 27 Jan 1999 09:59:38 +0900
Tatsuo Ishii <t-ishii@sra.co.jp>
mb support fix

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 


Tue, 26 Jan 1999 21:18:12 -0400 (AST)
The Hermit Hacker <scrappy@hub.org>
Re: [PATCHES] mb support fix