From eb089e7f766f6d366641d582e38ac59a2bb57123 Mon Sep 17 00:00:00 2001 From: Tatsuo Ishii Date: Sat, 19 Feb 2000 05:01:16 +0000 Subject: [PATCH] Add new backslash command \eset and \eshow. --- src/bin/psql/command.c | 31 ++++++++++++++++++++++++++++++- src/bin/psql/help.c | 6 +++++- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c index a4353124cc..cf1e701c0e 100644 --- a/src/bin/psql/command.c +++ b/src/bin/psql/command.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.19 2000/02/16 13:15:26 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.20 2000/02/19 05:01:15 ishii Exp $ */ #include "postgres.h" #include "command.h" @@ -33,6 +33,11 @@ #include "settings.h" #include "variables.h" +#ifdef MULTIBYTE +#include "miscadmin.h" +#include "mb/pg_wchar.h" +#endif + /* functions for use in this file */ @@ -346,6 +351,30 @@ exec_command(const char *cmd, fputs("\n", fout); } +#ifdef MULTIBYTE + /* \eset -- set client side encoding */ + else if (strcmp(cmd, "eset") == 0) + { + char *encoding = scan_option(&string, OT_NORMAL, NULL); + if (PQsetClientEncoding(pset.db, encoding) == -1) + { + psql_error("\\%s: invalid encoding\n", cmd); + } + /* save encoding info into psql internal data */ + pset.encoding = PQclientEncoding(pset.db); + free(encoding); + } + /* \eshow -- show encoding info */ + else if (strcmp(cmd, "eshow") == 0) + { + int encoding = PQclientEncoding(pset.db); + if (encoding == -1) + { + psql_error("\\%s: there is no connection\n", cmd); + } + printf("%s\n", pg_encoding_to_char(encoding)); + } +#endif /* \f -- change field separator */ else if (strcmp(cmd, "f") == 0) { diff --git a/src/bin/psql/help.c b/src/bin/psql/help.c index 63e4bda5d7..ddd8b22c35 100644 --- a/src/bin/psql/help.c +++ b/src/bin/psql/help.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/help.c,v 1.19 2000/02/16 13:15:26 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/help.c,v 1.20 2000/02/19 05:01:16 ishii Exp $ */ #include "postgres.h" #include "help.h" @@ -200,6 +200,10 @@ slashUsage(void) fprintf(fout, " \\dT list data types\n"); fprintf(fout, " \\e [fname] edit the current query buffer or with external editor\n"); fprintf(fout, " \\echo write text to stdout\n"); +#ifdef MULTIBYTE + fprintf(fout, " \\eset set client encoding\n"); + fprintf(fout, " \\eshow show client encoding\n"); +#endif fprintf(fout, " \\g [fname] send query to backend (and results in or |pipe)\n"); fprintf(fout, " \\h [cmd] help on syntax of sql commands, * for all commands\n"); fprintf(fout, " \\i read and execute queries from filename\n");