#endif
+#ifdef MULTIBYTE
+/* flag to indicate if PGCLIENTENCODING has been set by a user */
+static int has_client_encoding;
+#endif
+
/* This prompt string is assumed to have at least 3 characters by code in MainLoop().
* A character two characters from the end is replaced each time by a mode character.
*/
/* FIXME: if changing user, ought to prompt for a new password? */
pwparam = PQpass(olddb);
+#ifdef MULTIBYTE
+ /* PGCLIENTENCODING may be set by the previous connection.
+ if a user does not explicitly set PGCLIENTENCODING,
+ we should discard PGCLIENTENCODING so that
+ libpq could get the backend encoding as the default
+ PGCLIENTENCODING value. -- 1998/12/12 Tatsuo Ishii */
+
+ if (!has_client_encoding) {
+ unsetenv("PGCLIENTENCODING");
+ }
+#endif
+
pset->db = PQsetdbLogin(PQhost(olddb), PQport(olddb),
NULL, NULL, dbparam, userparam, pwparam);
settings.getPassword = 0;
#endif
+#ifdef MUTIBYTE
+ has_client_encoding = getenv("PGCLIENTENCODING");
+#endif
+
while ((c = getopt(argc, argv, "Aa:c:d:ef:F:lh:Hnso:p:qStT:ux")) != EOF)
{
switch (c)