I have committed changes below.
> (1) Add a new member "int client_encoding" to struct pg_conn.
done.
> (2) Add an argument which is a pointer to PGconn to PQsetenvPoll() so
> that the client encoding can be set in (1) above.
Rather than adding new parameter, I changed the argument to PGconn *.
> (3) Add a new function PQclientencoding() to extract client_encoding
> from PGconn.
done.
> (4) Change PQmblen() so that it extracts encoding info using
> PQclientencoding() rather than calling getenv(). This also requires
> add an argument which is a pointer to PGconn.
Now,
extern int PQmblen(const unsigned char *s, int encoding);
(Thanks goes to Peter for the suggestion)
> (5) Change fe-print.c:do_filed() to add an argument which is a pointer to
> PGconn.
I found the arugument PGresult *res of do_field() has a pointer to
PGconn. So I did not need to change the interface.
(6) lots of changes have been made to psql to adapt the changes above.
Though I have run the regression test with/without multibyte and did
not find particular problem, please let me know if you find anything
wrong with those changes.
--
Tatsuo Ishii