Add new backslash command \eset and \eshow.

This commit is contained in:
Tatsuo Ishii 2000-02-19 05:01:16 +00:00
parent c239c11a63
commit eb089e7f76
2 changed files with 35 additions and 2 deletions

View File

@ -3,7 +3,7 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * 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 "postgres.h"
#include "command.h" #include "command.h"
@ -33,6 +33,11 @@
#include "settings.h" #include "settings.h"
#include "variables.h" #include "variables.h"
#ifdef MULTIBYTE
#include "miscadmin.h"
#include "mb/pg_wchar.h"
#endif
/* functions for use in this file */ /* functions for use in this file */
@ -346,6 +351,30 @@ exec_command(const char *cmd,
fputs("\n", fout); 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 */ /* \f -- change field separator */
else if (strcmp(cmd, "f") == 0) else if (strcmp(cmd, "f") == 0)
{ {

View File

@ -3,7 +3,7 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * 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 "postgres.h"
#include "help.h" #include "help.h"
@ -200,6 +200,10 @@ slashUsage(void)
fprintf(fout, " \\dT list data types\n"); fprintf(fout, " \\dT list data types\n");
fprintf(fout, " \\e [fname] edit the current query buffer or <fname> with external editor\n"); fprintf(fout, " \\e [fname] edit the current query buffer or <fname> with external editor\n");
fprintf(fout, " \\echo <text> write text to stdout\n"); fprintf(fout, " \\echo <text> write text to stdout\n");
#ifdef MULTIBYTE
fprintf(fout, " \\eset <encoding> set client encoding\n");
fprintf(fout, " \\eshow show client encoding\n");
#endif
fprintf(fout, " \\g [fname] send query to backend (and results in <fname> or |pipe)\n"); fprintf(fout, " \\g [fname] send query to backend (and results in <fname> or |pipe)\n");
fprintf(fout, " \\h [cmd] help on syntax of sql commands, * for all commands\n"); fprintf(fout, " \\h [cmd] help on syntax of sql commands, * for all commands\n");
fprintf(fout, " \\i <fname> read and execute queries from filename\n"); fprintf(fout, " \\i <fname> read and execute queries from filename\n");