From e4129a0e618e9dd3c5c1e58b8f90208245d08223 Mon Sep 17 00:00:00 2001 From: Andrew Dunstan Date: Wed, 18 Apr 2012 10:57:11 -0400 Subject: [PATCH] Revert recent commit re positional arguments. --- src/bin/initdb/initdb.c | 7 ++----- src/bin/scripts/clusterdb.c | 26 +++++++++++--------------- src/bin/scripts/createlang.c | 14 ++------------ src/bin/scripts/droplang.c | 14 ++------------ src/bin/scripts/reindexdb.c | 25 ++++++++++--------------- src/bin/scripts/vacuumdb.c | 27 +++++++++++---------------- 6 files changed, 38 insertions(+), 75 deletions(-) diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c index 34705eee357..0febcf1fcfb 100644 --- a/src/bin/initdb/initdb.c +++ b/src/bin/initdb/initdb.c @@ -2612,11 +2612,8 @@ main(int argc, char *argv[]) } - /* - * Non-option argument specifies data directory - * as long as it wasn't already specified with -D / --pgdata - */ - if (optind < argc && strlen(pg_data) == 0) + /* Non-option argument specifies data directory */ + if (optind < argc) { pg_data = xstrdup(argv[optind]); optind++; diff --git a/src/bin/scripts/clusterdb.c b/src/bin/scripts/clusterdb.c index 30cdf034999..c690de36cc9 100644 --- a/src/bin/scripts/clusterdb.c +++ b/src/bin/scripts/clusterdb.c @@ -106,22 +106,18 @@ main(int argc, char *argv[]) } } - /* - * Non-option argument specifies database name - * as long as it wasn't already specified with -d / --dbname - */ - if (optind < argc && dbname == NULL) + switch (argc - optind) { - dbname = argv[optind]; - optind++; - } - - if (optind < argc) - { - fprintf(stderr, _("%s: too many command-line arguments (first is \"%s\")\n"), - progname, argv[optind + 1]); - fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname); - exit(1); + case 0: + break; + case 1: + dbname = argv[optind]; + break; + default: + fprintf(stderr, _("%s: too many command-line arguments (first is \"%s\")\n"), + progname, argv[optind + 1]); + fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname); + exit(1); } setup_cancel_handler(); diff --git a/src/bin/scripts/createlang.c b/src/bin/scripts/createlang.c index 05dd048af95..d00cb63a8b0 100644 --- a/src/bin/scripts/createlang.c +++ b/src/bin/scripts/createlang.c @@ -91,24 +91,14 @@ main(int argc, char *argv[]) } } - /* - * We set dbname from positional arguments if it is not - * already set by option arguments -d. If not doing - * listlangs, positional dbname must follow positional - * langname. - */ - if (argc - optind > 0) { if (listlangs) - { - if (dbname == NULL) - dbname = argv[optind++]; - } + dbname = argv[optind++]; else { langname = argv[optind++]; - if (argc - optind > 0 && dbname == NULL) + if (argc - optind > 0) dbname = argv[optind++]; } } diff --git a/src/bin/scripts/droplang.c b/src/bin/scripts/droplang.c index 31ac98f4c8d..7038e08b8af 100644 --- a/src/bin/scripts/droplang.c +++ b/src/bin/scripts/droplang.c @@ -102,24 +102,14 @@ main(int argc, char *argv[]) } } - /* - * We set dbname from positional arguments if it is not - * already set by option arguments -d. If not doing - * listlangs, positional dbname must follow positional - * langname. - */ - if (argc - optind > 0) { if (listlangs) - { - if (dbname == NULL) - dbname = argv[optind++]; - } + dbname = argv[optind++]; else { langname = argv[optind++]; - if (argc - optind > 0 && dbname == NULL) + if (argc - optind > 0) dbname = argv[optind++]; } } diff --git a/src/bin/scripts/reindexdb.c b/src/bin/scripts/reindexdb.c index 4e0d9ba0a07..3651707981c 100644 --- a/src/bin/scripts/reindexdb.c +++ b/src/bin/scripts/reindexdb.c @@ -116,22 +116,17 @@ main(int argc, char *argv[]) } } - /* - * Non-option argument specifies database name - * as long as it wasn't already specified with -d / --dbname - */ - if (optind < argc && dbname == NULL) + switch (argc - optind) { - dbname = argv[optind]; - optind++; - } - - if (optind < argc) - { - fprintf(stderr, _("%s: too many command-line arguments (first is \"%s\")\n"), - progname, argv[optind + 1]); - fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname); - exit(1); + case 0: + break; + case 1: + dbname = argv[optind]; + break; + default: + fprintf(stderr, _("%s: too many command-line arguments (first is \"%s\")\n"), progname, argv[optind + 1]); + fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname); + exit(1); } setup_cancel_handler(); diff --git a/src/bin/scripts/vacuumdb.c b/src/bin/scripts/vacuumdb.c index d3acbb5bb48..13081b4fc0e 100644 --- a/src/bin/scripts/vacuumdb.c +++ b/src/bin/scripts/vacuumdb.c @@ -123,23 +123,18 @@ main(int argc, char *argv[]) } } - - /* - * Non-option argument specifies database name - * as long as it wasn't already specified with -d / --dbname - */ - if (optind < argc && dbname == NULL) + switch (argc - optind) { - dbname = argv[optind]; - optind++; - } - - if (optind < argc) - { - fprintf(stderr, _("%s: too many command-line arguments (first is \"%s\")\n"), - progname, argv[optind + 1]); - fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname); - exit(1); + case 0: + break; + case 1: + dbname = argv[optind]; + break; + default: + fprintf(stderr, _("%s: too many command-line arguments (first is \"%s\")\n"), + progname, argv[optind + 1]); + fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname); + exit(1); } setup_cancel_handler();