summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeikki Linnakangas2016-09-18 10:46:32 +0000
committerHeikki Linnakangas2016-09-18 11:07:30 +0000
commited29d2de25d7da3b2b4c050d4cb6139eb4326ecb (patch)
tree7d58bd37a108093496ae7d33a0c789265b9b468c
parent3ed7f54bc46ab2bb39b703b40bc72693c7f1306f (diff)
Fix ecpg -? option on Windows, add -V alias for --version.
This makes the -? and -V options work consistently with other binaries. --help and --version are now only recognized as the first option, i.e. "ecpg --foobar --help" no longer prints the help, but that's consistent with most of our other binaries, too. Backpatch to all supported versions. Haribabu Kommi Discussion: <CAJrrPGfnRXvmCzxq6Dy=stAWebfNHxiL+Y_z7uqksZUCkW_waQ@mail.gmail.com>
-rw-r--r--src/interfaces/ecpg/preproc/ecpg.c45
1 files changed, 17 insertions, 28 deletions
diff --git a/src/interfaces/ecpg/preproc/ecpg.c b/src/interfaces/ecpg/preproc/ecpg.c
index 6f7314875ec..9c828c74a4a 100644
--- a/src/interfaces/ecpg/preproc/ecpg.c
+++ b/src/interfaces/ecpg/preproc/ecpg.c
@@ -111,15 +111,11 @@ add_preprocessor_define(char *define)
defines->next = pd;
}
-#define ECPG_GETOPT_LONG_HELP 1
-#define ECPG_GETOPT_LONG_VERSION 2
-#define ECPG_GETOPT_LONG_REGRESSION 3
+#define ECPG_GETOPT_LONG_REGRESSION 1
int
main(int argc, char *const argv[])
{
static struct option ecpg_options[] = {
- {"help", no_argument, NULL, ECPG_GETOPT_LONG_HELP},
- {"version", no_argument, NULL, ECPG_GETOPT_LONG_VERSION},
{"regression", no_argument, NULL, ECPG_GETOPT_LONG_REGRESSION},
{NULL, 0, NULL, 0}
};
@@ -140,33 +136,26 @@ main(int argc, char *const argv[])
find_my_exec(argv[0], my_exec_path);
+ if (argc > 1)
+ {
+ if (strcmp(argv[1], "--help") == 0 || strcmp(argv[1], "-?") == 0)
+ {
+ help(progname);
+ exit(0);
+ }
+ if (strcmp(argv[1], "--version") == 0 || strcmp(argv[1], "-V") == 0)
+ {
+ printf("ecpg (PostgreSQL %s) %d.%d.%d\n", PG_VERSION,
+ MAJOR_VERSION, MINOR_VERSION, PATCHLEVEL);
+ exit(0);
+ }
+ }
+
output_filename = NULL;
- while ((c = getopt_long(argc, argv, "vcio:I:tD:dC:r:h?", ecpg_options, NULL)) != -1)
+ while ((c = getopt_long(argc, argv, "vcio:I:tD:dC:r:h", ecpg_options, NULL)) != -1)
{
switch (c)
{
- case ECPG_GETOPT_LONG_VERSION:
- printf("ecpg (PostgreSQL %s) %d.%d.%d\n", PG_VERSION,
- MAJOR_VERSION, MINOR_VERSION, PATCHLEVEL);
- exit(0);
- case ECPG_GETOPT_LONG_HELP:
- help(progname);
- exit(0);
-
- /*
- * -? is an alternative spelling of --help. However it is also
- * returned by getopt_long for unknown options. We can
- * distinguish both cases by means of the optopt variable
- * which is set to 0 if it was really -? and not an unknown
- * option character.
- */
- case '?':
- if (optopt == 0)
- {
- help(progname);
- exit(0);
- }
- break;
case ECPG_GETOPT_LONG_REGRESSION:
regression_mode = true;
break;