* http://archives.postgresql.org/pgsql-bugs/2010-02/msg00187.php
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.584 2010/08/03 19:24:04 tgl Exp $
+ *   $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.585 2010/08/13 14:38:03 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
        }
    }
 
-   if (optind < (argc - 1))
+   /* Get database name from command line */
+   if (optind < argc)
+       dbname = argv[optind++];
+
+   /* Complain if any arguments remain */
+   if (optind < argc)
    {
        fprintf(stderr, _("%s: too many command-line arguments (first is \"%s\")\n"),
-               progname, argv[optind + 1]);
+               progname, argv[optind]);
        fprintf(stderr, _("Try \"%s --help\" for more information.\n"),
                progname);
        exit(1);
    }
 
-   /* Get database name from command line */
-   if (optind < argc)
-       dbname = argv[optind];
-
    /* --column-inserts implies --inserts */
    if (column_inserts)
        dump_inserts = 1;
 
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.137 2010/08/03 19:24:05 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.138 2010/08/13 14:38:04 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
        }
    }
 
-   /* Add long options to the pg_dump argument list */
-   if (binary_upgrade)
-       appendPQExpBuffer(pgdumpopts, " --binary-upgrade");
-   if (column_inserts)
-       appendPQExpBuffer(pgdumpopts, " --column-inserts");
-   if (disable_dollar_quoting)
-       appendPQExpBuffer(pgdumpopts, " --disable-dollar-quoting");
-   if (disable_triggers)
-       appendPQExpBuffer(pgdumpopts, " --disable-triggers");
-   if (inserts)
-       appendPQExpBuffer(pgdumpopts, " --inserts");
-   if (no_tablespaces)
-       appendPQExpBuffer(pgdumpopts, " --no-tablespaces");
-   if (quote_all_identifiers)
-       appendPQExpBuffer(pgdumpopts, " --quote-all-identifiers");
-   if (use_setsessauth)
-       appendPQExpBuffer(pgdumpopts, " --use-set-session-authorization");
-
+   /* Complain if any arguments remain */
    if (optind < argc)
    {
        fprintf(stderr, _("%s: too many command-line arguments (first is \"%s\")\n"),
        exit(1);
    }
 
+   /* Add long options to the pg_dump argument list */
+   if (binary_upgrade)
+       appendPQExpBuffer(pgdumpopts, " --binary-upgrade");
+   if (column_inserts)
+       appendPQExpBuffer(pgdumpopts, " --column-inserts");
+   if (disable_dollar_quoting)
+       appendPQExpBuffer(pgdumpopts, " --disable-dollar-quoting");
+   if (disable_triggers)
+       appendPQExpBuffer(pgdumpopts, " --disable-triggers");
+   if (inserts)
+       appendPQExpBuffer(pgdumpopts, " --inserts");
+   if (no_tablespaces)
+       appendPQExpBuffer(pgdumpopts, " --no-tablespaces");
+   if (quote_all_identifiers)
+       appendPQExpBuffer(pgdumpopts, " --quote-all-identifiers");
+   if (use_setsessauth)
+       appendPQExpBuffer(pgdumpopts, " --use-set-session-authorization");
+
    /*
     * If there was a database specified on the command line, use that,
     * otherwise try to connect to database "postgres", and failing that
 
  *
  *
  * IDENTIFICATION
- *     $PostgreSQL: pgsql/src/bin/pg_dump/pg_restore.c,v 1.102 2010/05/15 21:41:16 tgl Exp $
+ *     $PostgreSQL: pgsql/src/bin/pg_dump/pg_restore.c,v 1.103 2010/08/13 14:38:04 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
        }
    }
 
+   /* Get file name from command line */
    if (optind < argc)
-       inputFileSpec = argv[optind];
+       inputFileSpec = argv[optind++];
    else
        inputFileSpec = NULL;
 
+   /* Complain if any arguments remain */
+   if (optind < argc)
+   {
+       fprintf(stderr, _("%s: too many command-line arguments (first is \"%s\")\n"),
+               progname, argv[optind]);
+       fprintf(stderr, _("Try \"%s --help\" for more information.\n"),
+               progname);
+       exit(1);
+   }
+
    /* Should get at most one of -d and -f, else user is confused */
    if (opts->dbname)
    {