OSDN Git Service

Fixes for \encoding command.
authorTatsuo Ishii <ishii@postgresql.org>
Mon, 21 Feb 2000 02:05:12 +0000 (02:05 +0000)
committerTatsuo Ishii <ishii@postgresql.org>
Mon, 21 Feb 2000 02:05:12 +0000 (02:05 +0000)
1) freeing null pointer
2) invalid encoding info may be stored into psql variable
3) fix indentation

src/bin/psql/command.c

index c7b4577..07581fd 100644 (file)
@@ -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 */