Use a proper enum for tri-valued variables.
authorBruce Momjian
Mon, 12 Dec 2005 15:48:04 +0000 (15:48 +0000)
committerBruce Momjian
Mon, 12 Dec 2005 15:48:04 +0000 (15:48 +0000)
src/bin/scripts/createuser.c

index 886ee5454a21bc4759f9bc56007e71143032eb80..bb68775fe99a3421c4761af796dddb7903289b5f 100644 (file)
@@ -5,7 +5,7 @@
  * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/bin/scripts/createuser.c,v 1.22 2005/12/12 15:41:52 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/scripts/createuser.c,v 1.23 2005/12/12 15:48:04 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 static void help(const char *progname);
 
+enum trivalue {
+   TRI_DEFAULT,
+   TRI_NO,
+   TRI_YES
+};
 
 int
 main(int argc, char *argv[])
@@ -51,7 +56,6 @@ main(int argc, char *argv[])
    const char *progname;
    int         optindex;
    int         c;
-
    char       *newuser = NULL;
    char       *host = NULL;
    char       *port = NULL;
@@ -62,16 +66,13 @@ main(int argc, char *argv[])
    char       *conn_limit = NULL;
    bool        pwprompt = false;
    char       *newpassword = NULL;
-   /*
-    *  Tri-valued variables.   -1 is "NO", +1 is enable and 0 uses the
-    *  server default.
-    */
-   int         createdb = 0;
-   int         superuser = 0;
-   int         createrole = 0;
-   int         inherit = 0;
-   int         login = 0;
-   int         encrypted = 0;
+   /*  Tri-valued variables.  */
+   enum trivalue   createdb = TRI_DEFAULT,
+                   superuser = TRI_DEFAULT,
+                   createrole = TRI_DEFAULT,
+                   inherit = TRI_DEFAULT,
+                   login = TRI_DEFAULT,
+                   encrypted = TRI_DEFAULT;
 
    PQExpBufferData sql;
 
@@ -107,36 +108,36 @@ main(int argc, char *argv[])
                quiet = true;
                break;
            case 'd':
-               createdb = +1;
+               createdb = TRI_YES;
                break;
            case 'D':
-               createdb = -1;
+               createdb = TRI_NO;
                break;
            case 's':
            case 'a':
-               superuser = +1;
+               superuser = TRI_YES;
                break;
            case 'S':
            case 'A':
-               superuser = -1;
+               superuser = TRI_NO;
                break;
            case 'r':
-               createrole = +1;
+               createrole = TRI_YES;
                break;
            case 'R':
-               createrole = -1;
+               createrole = TRI_NO;
                break;
            case 'i':
-               inherit = +1;
+               inherit = TRI_YES;
                break;
            case 'I':
-               inherit = -1;
+               inherit = TRI_NO;
                break;
            case 'l':
-               login = +1;
+               login = TRI_YES;
                break;
            case 'L':
-               login = -1;
+               login = TRI_NO;
                break;
            case 'c':
                conn_limit = optarg;
@@ -145,10 +146,10 @@ main(int argc, char *argv[])
                pwprompt = true;
                break;
            case 'E':
-               encrypted = +1;
+               encrypted = TRI_YES;
                break;
            case 'N':
-               encrypted = -1;
+               encrypted = TRI_NO;
                break;
            default:
                fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname);
@@ -195,16 +196,16 @@ main(int argc, char *argv[])
 
        reply = simple_prompt("Shall the new role be a superuser? (y/n) ", 1, true);
        if (check_yesno_response(reply) == 1)
-           superuser = +1;
+           superuser = TRI_YES;
        else
-           superuser = -1;
+           superuser = TRI_NO;
    }
 
-   if (superuser == +1)
+   if (superuser == TRI_YES)
    {
        /* Not much point in trying to restrict a superuser */
-       createdb = +1;
-       createrole = +1;
+       createdb = TRI_YES;
+       createrole = TRI_YES;
    }
 
    if (createdb == 0)
@@ -213,9 +214,9 @@ main(int argc, char *argv[])
 
        reply = simple_prompt("Shall the new role be allowed to create databases? (y/n) ", 1, true);
        if (check_yesno_response(reply) == 1)
-           createdb = +1;
+           createdb = TRI_YES;
        else
-           createdb = -1;
+           createdb = TRI_NO;
    }
 
    if (createrole == 0)
@@ -224,54 +225,48 @@ main(int argc, char *argv[])
 
        reply = simple_prompt("Shall the new role be allowed to create more new roles? (y/n) ", 1, true);
        if (check_yesno_response(reply) == 1)
-           createrole = +1;
+           createrole = TRI_YES;
        else
-           createrole = -1;
+           createrole = TRI_NO;
    }
 
    if (inherit == 0)
-   {
-       /* silently default to YES */
-       inherit = +1;
-   }
+       inherit = TRI_YES;
 
    if (login == 0)
-   {
-       /* silently default to YES */
-       login = +1;
-   }
+       login = TRI_YES;
 
    initPQExpBuffer(&sql);
 
    printfPQExpBuffer(&sql, "CREATE ROLE %s", fmtId(newuser));
    if (newpassword)
    {
-       if (encrypted == +1)
+       if (encrypted == TRI_YES)
            appendPQExpBuffer(&sql, " ENCRYPTED");
-       if (encrypted == -1)
+       if (encrypted == TRI_NO)
            appendPQExpBuffer(&sql, " UNENCRYPTED");
        appendPQExpBuffer(&sql, " PASSWORD ");
        appendStringLiteral(&sql, newpassword, false);
    }
-   if (superuser == +1)
+   if (superuser == TRI_YES)
        appendPQExpBuffer(&sql, " SUPERUSER");
-   if (superuser == -1)
+   if (superuser == TRI_NO)
        appendPQExpBuffer(&sql, " NOSUPERUSER");
-   if (createdb == +1)
+   if (createdb == TRI_YES)
        appendPQExpBuffer(&sql, " CREATEDB");
-   if (createdb == -1)
+   if (createdb == TRI_NO)
        appendPQExpBuffer(&sql, " NOCREATEDB");
-   if (createrole == +1)
+   if (createrole == TRI_YES)
        appendPQExpBuffer(&sql, " CREATEROLE");
-   if (createrole == -1)
+   if (createrole == TRI_NO)
        appendPQExpBuffer(&sql, " NOCREATEROLE");
-   if (inherit == +1)
+   if (inherit == TRI_YES)
        appendPQExpBuffer(&sql, " INHERIT");
-   if (inherit == -1)
+   if (inherit == TRI_NO)
        appendPQExpBuffer(&sql, " NOINHERIT");
-   if (login == +1)
+   if (login == TRI_YES)
        appendPQExpBuffer(&sql, " LOGIN");
-   if (login == -1)
+   if (login == TRI_NO)
        appendPQExpBuffer(&sql, " NOLOGIN");
    if (conn_limit != NULL)
        appendPQExpBuffer(&sql, " CONNECTION LIMIT %s", conn_limit);