Commit fc6603ff authored by Peter Eisentraut's avatar Peter Eisentraut

Advertise --help (rather than '-?') as help option (problems with csh).

Accept --help even if no general long options support exists.
parent c25b4dbf
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.190 2000/11/25 04:13:17 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.191 2000/11/25 19:05:42 petere Exp $
* *
* NOTES * NOTES
* *
...@@ -310,6 +310,25 @@ PostmasterMain(int argc, char *argv[]) ...@@ -310,6 +310,25 @@ PostmasterMain(int argc, char *argv[])
real_argv = argv; real_argv = argv;
real_argc = argc; real_argc = argc;
/*
* Catch standard options before doing much else. This even works
* on systems without getopt_long.
*/
if (argc > 1)
{
if (strcmp(argv[1], "--help")==0 || strcmp(argv[1], "-?")==0)
{
usage(progname);
exit(0);
}
if (strcmp(argv[1], "--version")==0 || strcmp(argv[1], "-V")==0)
{
puts("postmaster (PostgreSQL) " PG_VERSION);
exit(0);
}
}
/* /*
* for security, no dir or file created can be group or other * for security, no dir or file created can be group or other
* accessible * accessible
...@@ -358,7 +377,7 @@ PostmasterMain(int argc, char *argv[]) ...@@ -358,7 +377,7 @@ PostmasterMain(int argc, char *argv[])
* will occur. * will occur.
*/ */
opterr = 1; opterr = 1;
while ((opt = getopt(argc, argv, "A:a:B:b:c:D:d:Fh:ik:lm:MN:no:p:SsV-:?")) != EOF) while ((opt = getopt(argc, argv, "A:a:B:b:c:D:d:Fh:ik:lm:MN:no:p:Ss-:")) != EOF)
{ {
switch(opt) switch(opt)
{ {
...@@ -366,42 +385,21 @@ PostmasterMain(int argc, char *argv[]) ...@@ -366,42 +385,21 @@ PostmasterMain(int argc, char *argv[])
potential_DataDir = optarg; potential_DataDir = optarg;
break; break;
case 'V': case '?':
puts("postmaster (PostgreSQL) " PG_VERSION); fprintf(stderr, "Try '%s --help' for more information.\n", progname);
exit(0); exit(1);
case '-':
{
char *name, *value;
ParseLongOption(optarg, &name, &value);
if (strcmp(name, "help")==0)
{
usage(progname);
exit(0);
}
else if (strcmp(name, "version")==0)
{
puts("postmaster (PostgreSQL) " PG_VERSION);
exit(0);
} }
break;
} }
case '?': /*
if (strcmp(argv[optind - 1], "-?") == 0) * Non-option switch arguments don't exist.
{ */
usage(progname); if (optind < argc)
exit(0);
}
else
{ {
fprintf(stderr, "Try -? for help.\n"); fprintf(stderr, "%s: invalid argument -- %s\n", progname, argv[optind]);
fprintf(stderr, "Try '%s --help' for more information.\n", progname);
exit(1); exit(1);
} }
break;
}
}
checkDataDir(potential_DataDir); /* issues error messages */ checkDataDir(potential_DataDir); /* issues error messages */
SetDataDir(potential_DataDir); SetDataDir(potential_DataDir);
...@@ -414,7 +412,7 @@ PostmasterMain(int argc, char *argv[]) ...@@ -414,7 +412,7 @@ PostmasterMain(int argc, char *argv[])
#ifdef HAVE_INT_OPTRESET #ifdef HAVE_INT_OPTRESET
optreset = 1; optreset = 1;
#endif #endif
while ((opt = getopt(argc, argv, "A:a:B:b:c:D:d:Fh:ik:lm:MN:no:p:SsV-:?")) != EOF) while ((opt = getopt(argc, argv, "A:a:B:b:c:D:d:Fh:ik:lm:MN:no:p:Ss-:")) != EOF)
{ {
switch (opt) switch (opt)
{ {
...@@ -546,20 +544,11 @@ PostmasterMain(int argc, char *argv[]) ...@@ -546,20 +544,11 @@ PostmasterMain(int argc, char *argv[])
default: default:
/* shouldn't get here */ /* shouldn't get here */
fprintf(stderr, "Try -? for help.\n"); fprintf(stderr, "Try '%s --help' for more information.\n", progname);
exit(1); exit(1);
} }
} }
/*
* Non-option switch arguments don't exist.
*/
if (optind < argc)
{
fprintf(stderr, "%s: invalid argument -- %s\n", progname, argv[optind]);
exit(1);
}
/* /*
* Check for invalid combinations of switches * Check for invalid combinations of switches
*/ */
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.189 2000/11/21 21:16:02 petere Exp $ * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.190 2000/11/25 19:05:42 petere Exp $
* *
* NOTES * NOTES
* this is the "main" module of the postgres backend and * this is the "main" module of the postgres backend and
...@@ -1062,6 +1062,24 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha ...@@ -1062,6 +1062,24 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
char *potential_DataDir = NULL; char *potential_DataDir = NULL;
/*
* Catch standard options before doing much else. This even works
* on systems without getopt_long.
*/
if (!IsUnderPostmaster && argc > 1)
{
if (strcmp(argv[1], "--help")==0 || strcmp(argv[1], "-?")==0)
{
usage(argv[0]);
exit(0);
}
if (strcmp(argv[1], "--version")==0 || strcmp(argv[1], "-V")==0)
{
puts("postgres (PostgreSQL) " PG_VERSION);
exit(0);
}
}
/* /*
* Fire up essential subsystems: error and memory management * Fire up essential subsystems: error and memory management
* *
...@@ -1110,7 +1128,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha ...@@ -1110,7 +1128,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
optind = 1; /* reset after postmaster's usage */ optind = 1; /* reset after postmaster's usage */
while ((flag = getopt(argc, argv, "A:B:c:CD:d:Eef:FiLNOPo:p:S:st:v:VW:x:-:?")) != EOF) while ((flag = getopt(argc, argv, "A:B:c:CD:d:Eef:FiLNOPo:p:S:st:v:W:x:-:")) != EOF)
switch (flag) switch (flag)
{ {
case 'A': case 'A':
...@@ -1336,10 +1354,6 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha ...@@ -1336,10 +1354,6 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
FrontendProtocol = (ProtocolVersion) atoi(optarg); FrontendProtocol = (ProtocolVersion) atoi(optarg);
break; break;
case 'V':
puts("postgres (PostgreSQL) " PG_VERSION);
exit(0);
case 'W': case 'W':
/* ---------------- /* ----------------
* wait N seconds to allow attach from a debugger * wait N seconds to allow attach from a debugger
...@@ -1387,16 +1401,6 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha ...@@ -1387,16 +1401,6 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
char *name, *value; char *name, *value;
ParseLongOption(optarg, &name, &value); ParseLongOption(optarg, &name, &value);
if (strcmp(name, "help")==0)
{
usage(argv[0]);
exit(0);
}
else if (strcmp(name, "version")==0)
{
puts("postgres (PostgreSQL) " PG_VERSION);
exit(0);
}
if (!value) if (!value)
{ {
if (flag == '-') if (flag == '-')
...@@ -1412,18 +1416,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha ...@@ -1412,18 +1416,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
break; break;
} }
case '?':
if (strcmp(argv[optind - 1], "-?") == 0)
{
usage(argv[0]);
exit(0);
}
else
errs++;
break;
default: default:
/* shouldn't get here */
errs++; errs++;
break; break;
} }
...@@ -1643,7 +1636,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha ...@@ -1643,7 +1636,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
if (!IsUnderPostmaster) if (!IsUnderPostmaster)
{ {
puts("\nPOSTGRES backend interactive interface "); puts("\nPOSTGRES backend interactive interface ");
puts("$Revision: 1.189 $ $Date: 2000/11/21 21:16:02 $\n"); puts("$Revision: 1.190 $ $Date: 2000/11/25 19:05:42 $\n");
} }
/* /*
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
# #
# Copyright (c) 1994, Regents of the University of California # Copyright (c) 1994, Regents of the University of California
# #
# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.116 2000/11/21 20:55:57 tgl Exp $ # $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.117 2000/11/25 19:05:43 petere Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
...@@ -253,7 +253,7 @@ do ...@@ -253,7 +253,7 @@ do
;; ;;
-*) -*)
echo "$CMDNAME: invalid option: $1" echo "$CMDNAME: invalid option: $1"
echo "Try '$CMDNAME -?' for help." echo "Try '$CMDNAME --help' for more information."
exit 1 exit 1
;; ;;
*) *)
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
# #
# #
# IDENTIFICATION # IDENTIFICATION
# $Header: /cvsroot/pgsql/src/bin/initlocation/Attic/initlocation.sh,v 1.9 2000/11/11 22:59:46 petere Exp $ # $Header: /cvsroot/pgsql/src/bin/initlocation/Attic/initlocation.sh,v 1.10 2000/11/25 19:05:43 petere Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
...@@ -51,7 +51,7 @@ do ...@@ -51,7 +51,7 @@ do
-*) -*)
echo "$CMDNAME: invalid option: $1" 1>&2 echo "$CMDNAME: invalid option: $1" 1>&2
echo "Try '$CMDNAME -?' for help." 1>&2 echo "Try '$CMDNAME --help' for more information." 1>&2
exit 1 exit 1
;; ;;
*) *)
......
...@@ -333,7 +333,7 @@ main(int argc, char *argv[]) ...@@ -333,7 +333,7 @@ main(int argc, char *argv[])
if (argc != 2) if (argc != 2)
{ {
fprintf(stderr, "%s: too %s arguments\nTry '%s -?' for help.\n", fprintf(stderr, "%s: too %s arguments\nTry '%s --help' for more information.\n",
progname, argc > 2 ? "many" : "few", progname); progname, argc > 2 ? "many" : "few", progname);
exit(1); exit(1);
} }
...@@ -350,7 +350,7 @@ main(int argc, char *argv[]) ...@@ -350,7 +350,7 @@ main(int argc, char *argv[])
} }
if (argv[1][0] == '-') if (argv[1][0] == '-')
{ {
fprintf(stderr, "%s: invalid option: %s\nTry '%s -?' for help.\n", fprintf(stderr, "%s: invalid option: %s\nTry '%s --help' for more information.\n",
progname, argv[1], progname); progname, argv[1], progname);
exit(1); exit(1);
} }
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.39 2000/11/13 23:37:53 momjian Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.40 2000/11/25 19:05:44 petere Exp $
*/ */
#include "postgres.h" #include "postgres.h"
...@@ -107,6 +107,20 @@ main(int argc, char *argv[]) ...@@ -107,6 +107,20 @@ main(int argc, char *argv[])
else else
pset.progname = strrchr(argv[0], SEP_CHAR) + 1; pset.progname = strrchr(argv[0], SEP_CHAR) + 1;
if (argc > 1)
{
if (strcmp(argv[1], "--help")==0 || strcmp(argv[1], "-?")==0)
{
usage();
exit(EXIT_SUCCESS);
}
if (strcmp(argv[1], "--version")==0 || strcmp(argv[1], "-V")==0)
{
showVersion();
exit(EXIT_SUCCESS);
}
}
pset.cur_cmd_source = stdin; pset.cur_cmd_source = stdin;
pset.cur_cmd_interactive = false; pset.cur_cmd_interactive = false;
pset.encoding = PQenv2encoding(); pset.encoding = PQenv2encoding();
...@@ -520,19 +534,21 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts * options) ...@@ -520,19 +534,21 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts * options)
/* unknown option reported by getopt */ /* unknown option reported by getopt */
else else
{ {
fputs("Try -? for help.\n", stderr); fprintf(stderr, "Try '%s --help' for more information.\n",
pset.progname);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
break; break;
#ifndef HAVE_GETOPT_LONG #ifndef HAVE_GETOPT_LONG
case '-': case '-':
fprintf(stderr, "%s was compiled without support for long options.\n" fprintf(stderr, "%s was compiled without support for long options.\n"
"Use -? for help on invocation options.\n", pset.progname); "Use --help for help on invocation options.\n", pset.progname);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
break; break;
#endif #endif
default: default:
fputs("Try -? for help.\n", stderr); fprintf(stderr, "Try '%s --help' for more information.\n",
pset.progname);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
break; break;
} }
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
# #
# #
# IDENTIFICATION # IDENTIFICATION
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.11 2000/11/13 23:37:53 momjian Exp $ # $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createdb,v 1.12 2000/11/25 19:05:44 petere Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
...@@ -89,7 +89,7 @@ do ...@@ -89,7 +89,7 @@ do
;; ;;
-*) -*)
echo "$CMDNAME: invalid option: $1" 1>&2 echo "$CMDNAME: invalid option: $1" 1>&2
echo "Try '$CMDNAME -?' for help." 1>&2 echo "Try '$CMDNAME --help' for more information." 1>&2
exit 1 exit 1
;; ;;
*) *)
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
# #
# #
# IDENTIFICATION # IDENTIFICATION
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createlang.sh,v 1.20 2000/11/20 20:36:50 tgl Exp $ # $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createlang.sh,v 1.21 2000/11/25 19:05:44 petere Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
...@@ -99,7 +99,7 @@ do ...@@ -99,7 +99,7 @@ do
-*) -*)
echo "$CMDNAME: invalid option: $1" 1>&2 echo "$CMDNAME: invalid option: $1" 1>&2
echo "Try '$CMDNAME -?' for help." 1>&2 echo "Try '$CMDNAME --help' for more information." 1>&2
exit 1 exit 1
;; ;;
*) *)
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
# #
# #
# IDENTIFICATION # IDENTIFICATION
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createuser,v 1.14 2000/11/13 23:37:53 momjian Exp $ # $Header: /cvsroot/pgsql/src/bin/scripts/Attic/createuser,v 1.15 2000/11/25 19:05:44 petere Exp $
# #
# Note - this should NOT be setuid. # Note - this should NOT be setuid.
# #
...@@ -110,7 +110,7 @@ do ...@@ -110,7 +110,7 @@ do
;; ;;
-*) -*)
echo "$CMDNAME: invalid option: $1" 1>&2 echo "$CMDNAME: invalid option: $1" 1>&2
echo "Try '$CMDNAME -?' for help." 1>&2 echo "Try '$CMDNAME --help' for more information." 1>&2
exit 1 exit 1
;; ;;
*) *)
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
# #
# #
# IDENTIFICATION # IDENTIFICATION
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropdb,v 1.9 2000/11/13 23:37:53 momjian Exp $ # $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropdb,v 1.10 2000/11/25 19:05:44 petere Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
...@@ -83,7 +83,7 @@ do ...@@ -83,7 +83,7 @@ do
;; ;;
-*) -*)
echo "$CMDNAME: invalid option: $1" 1>&2 echo "$CMDNAME: invalid option: $1" 1>&2
echo "Try '$CMDNAME -?' for help." 1>&2 echo "Try '$CMDNAME --help' for more information." 1>&2
exit 1 exit 1
;; ;;
*) *)
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
# #
# #
# IDENTIFICATION # IDENTIFICATION
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/droplang,v 1.10 2000/11/13 23:37:53 momjian Exp $ # $Header: /cvsroot/pgsql/src/bin/scripts/Attic/droplang,v 1.11 2000/11/25 19:05:44 petere Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
...@@ -89,7 +89,7 @@ do ...@@ -89,7 +89,7 @@ do
-*) -*)
echo "$CMDNAME: invalid option: $1" 1>&2 echo "$CMDNAME: invalid option: $1" 1>&2
echo "Try '$CMDNAME -?' for help." 1>&2 echo "Try '$CMDNAME --help' for more information." 1>&2
exit 1 exit 1
;; ;;
*) *)
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
# #
# #
# IDENTIFICATION # IDENTIFICATION
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropuser,v 1.9 2000/11/13 23:37:53 momjian Exp $ # $Header: /cvsroot/pgsql/src/bin/scripts/Attic/dropuser,v 1.10 2000/11/25 19:05:44 petere Exp $
# #
# Note - this should NOT be setuid. # Note - this should NOT be setuid.
# #
...@@ -85,7 +85,7 @@ do ...@@ -85,7 +85,7 @@ do
;; ;;
-*) -*)
echo "$CMDNAME: invalid option: $1" 1>&2 echo "$CMDNAME: invalid option: $1" 1>&2
echo "Try '$CMDNAME -?' for help." 1>&2 echo "Try '$CMDNAME --help' for more information." 1>&2
exit 1 exit 1
;; ;;
*) *)
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
# #
# #
# IDENTIFICATION # IDENTIFICATION
# $Header: /cvsroot/pgsql/src/bin/scripts/Attic/vacuumdb,v 1.12 2000/11/13 23:37:53 momjian Exp $ # $Header: /cvsroot/pgsql/src/bin/scripts/Attic/vacuumdb,v 1.13 2000/11/25 19:05:44 petere Exp $
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
...@@ -102,7 +102,7 @@ do ...@@ -102,7 +102,7 @@ do
-*) -*)
echo "$CMDNAME: invalid option: $1" 1>&2 echo "$CMDNAME: invalid option: $1" 1>&2
echo "Try '$CMDNAME -?' for help." 1>&2 echo "Try '$CMDNAME --help' for more information." 1>&2
exit 1 exit 1
;; ;;
*) *)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment