postgres.git / summary / log / commit / refs
commit ed29d2de25d7da3b2b4c050d4cb6139eb4326ecb
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: Sun Sep 18 10:46:32 2016 +0000
First released in: 10.0, 9.1.24, 9.2.19, 9.3.15, 9.4.10, 9.5.5, 9.6.0
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>
src/interfaces/ecpg/preproc/ecpg.c | 45 ++++++++++++++------------------------
1 file 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;
[parent: 3ed7f54bc46a]