diff --git a/src/interfaces/ecpg/preproc/ecpg.c b/src/interfaces/ecpg/preproc/ecpg.c index 3ce9d04bcc..46bacb0e8e 100644 --- a/src/interfaces/ecpg/preproc/ecpg.c +++ b/src/interfaces/ecpg/preproc/ecpg.c @@ -54,7 +54,7 @@ help(const char *progname) " \"no_indicator\", \"prepare\", \"questionmarks\"\n")); printf(_(" --regression run in regression testing mode\n")); printf(_(" -t turn on autocommit of transactions\n")); - printf(_(" --version output version information, then exit\n")); + printf(_(" -V, --version output version information, then exit\n")); printf(_(" -?, --help show this help, then exit\n")); printf(_("\nIf no output file is specified, the name is formed by adding .c to the\n" "input file name, after stripping off .pgc if present.\n")); @@ -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} }; @@ -144,32 +140,25 @@ main(int argc, char *const argv[]) return (ILLEGAL_OPTION); } + 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 %s\n", PG_VERSION); + 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 %s\n", PG_VERSION); - 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;