1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-12 05:01:15 +03:00

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

Accept --help even if no general long options support exists.
This commit is contained in:
Peter Eisentraut
2000-11-25 19:05:44 +00:00
parent c25b4dbf03
commit fc6603ff75
13 changed files with 96 additions and 98 deletions

View File

@@ -11,7 +11,7 @@
*
*
* 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
*
@@ -310,6 +310,25 @@ PostmasterMain(int argc, char *argv[])
real_argv = argv;
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
* accessible
@@ -358,7 +377,7 @@ PostmasterMain(int argc, char *argv[])
* will occur.
*/
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)
{
@@ -366,43 +385,22 @@ PostmasterMain(int argc, char *argv[])
potential_DataDir = optarg;
break;
case 'V':
puts("postmaster (PostgreSQL) " PG_VERSION);
exit(0);
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)
{
usage(progname);
exit(0);
}
else
{
fprintf(stderr, "Try -? for help.\n");
exit(1);
}
break;
fprintf(stderr, "Try '%s --help' for more information.\n", progname);
exit(1);
}
}
/*
* Non-option switch arguments don't exist.
*/
if (optind < argc)
{
fprintf(stderr, "%s: invalid argument -- %s\n", progname, argv[optind]);
fprintf(stderr, "Try '%s --help' for more information.\n", progname);
exit(1);
}
checkDataDir(potential_DataDir); /* issues error messages */
SetDataDir(potential_DataDir);
@@ -414,7 +412,7 @@ PostmasterMain(int argc, char *argv[])
#ifdef HAVE_INT_OPTRESET
optreset = 1;
#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)
{
@@ -546,20 +544,11 @@ PostmasterMain(int argc, char *argv[])
default:
/* shouldn't get here */
fprintf(stderr, "Try -? for help.\n");
fprintf(stderr, "Try '%s --help' for more information.\n", progname);
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
*/

View File

@@ -8,7 +8,7 @@
*
*
* 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
* 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
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
*
@@ -1110,7 +1128,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
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)
{
case 'A':
@@ -1336,10 +1354,6 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
FrontendProtocol = (ProtocolVersion) atoi(optarg);
break;
case 'V':
puts("postgres (PostgreSQL) " PG_VERSION);
exit(0);
case 'W':
/* ----------------
* 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
char *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 (flag == '-')
@@ -1412,18 +1416,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
break;
}
case '?':
if (strcmp(argv[optind - 1], "-?") == 0)
{
usage(argv[0]);
exit(0);
}
else
errs++;
break;
default:
/* shouldn't get here */
errs++;
break;
}
@@ -1643,7 +1636,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[], const cha
if (!IsUnderPostmaster)
{
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");
}
/*