From 320d3e06ee5b893c52b25ebd65a3ade4735c29e6 Mon Sep 17 00:00:00 2001 From: Tatsuo Ishii <ishii@postgresql.org> Date: Mon, 21 Feb 2000 02:05:12 +0000 Subject: [PATCH] Fixes for \encoding command. 1) freeing null pointer 2) invalid encoding info may be stored into psql variable 3) fix indentation --- src/bin/psql/command.c | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c index c7b4577e822..07581fd82c6 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.22 2000/02/20 14:28:20 petere Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.23 2000/02/21 02:05:12 ishii Exp $ */ #include "postgres.h" #include "command.h" @@ -354,27 +354,32 @@ exec_command(const char *cmd, fputs("\n", fout); } - /* \encoding -- set client side encoding */ + /* \encoding -- set/show client side encoding */ else if (strcmp(cmd, "encoding") == 0) { char *encoding = scan_option(&string, OT_NORMAL, NULL); - if (!encoding) - puts(pg_encoding_to_char(pset.encoding)); - else - { + if (!encoding) + /* show encoding */ + puts(pg_encoding_to_char(pset.encoding)); + else + { #ifdef MULTIBYTE - if (PQsetClientEncoding(pset.db, encoding) == -1) - psql_error("%s: invalid encoding name\n", encoding); + /* set encoding */ + if (PQsetClientEncoding(pset.db, encoding) == -1) + psql_error("%s: invalid encoding name\n", encoding); - /* save encoding info into psql internal data */ - pset.encoding = PQclientEncoding(pset.db); - SetVariable(pset.vars, "ENCODING", pg_encoding_to_char(pset.encoding)); + else + { + /* save encoding info into psql internal data */ + pset.encoding = PQclientEncoding(pset.db); + SetVariable(pset.vars, "ENCODING", pg_encoding_to_char(pset.encoding)); + } #else - psql_error("\\%s: multi-byte support is not enabled\n", cmd); + psql_error("\\%s: multi-byte support is not enabled\n", cmd); #endif - } - free(encoding); + free(encoding); + } } /* \f -- change field separator */ -- GitLab