>From 19f7f64aacbb184fdee948a0847ea06d4d9836ae Mon Sep 17 00:00:00 2001 From: Bernhard Voelker Date: Tue, 28 Nov 2017 17:32:29 +0100 Subject: [PATCH] maint: fix output for unknown long options for utils without long option Previously, e.g. cksum failed to output the offending unknown long option: $ cksum --unknown-opt cksum: invalid option -- '-' Try 'cksum --help' for more information. i.e., it tried to diagnose '-' as short option. Instead, it should diagnose the unknown long option: $ cksum --unknown-opt cksum: unrecognized option '--unknown-opt' Try 'cksum --help' for more information. * src/cksum.c (long_options): Add struct with null entry only. (main): Use it in the getopt_long call. * src/dd.c: Likewise. * src/hostid.c: Likewise. * src/hostname.c: Likewise. * src/link.c: Likewise. * src/logname.c: Likewise. * src/nohup.c: Likewise. * src/sleep.c: Likewise. * src/tsort.c: Likewise. * src/unlink.c: Likewise. * src/uptime.c: Likewise. * src/users.c: Likewise. * src/whoami.c: Likewise. * src/yes.c: Likewise. --- src/cksum.c | 7 ++++++- src/dd.c | 7 ++++++- src/hostid.c | 7 ++++++- src/hostname.c | 7 ++++++- src/link.c | 7 ++++++- src/logname.c | 7 ++++++- src/nohup.c | 7 ++++++- src/sleep.c | 7 ++++++- src/tsort.c | 7 ++++++- src/unlink.c | 7 ++++++- src/uptime.c | 7 ++++++- src/users.c | 7 ++++++- src/whoami.c | 7 ++++++- src/yes.c | 7 ++++++- 14 files changed, 84 insertions(+), 14 deletions(-) diff --git a/src/cksum.c b/src/cksum.c index 0877ce519..deceb4dd4 100644 --- a/src/cksum.c +++ b/src/cksum.c @@ -107,6 +107,11 @@ main (void) # include "die.h" # include "error.h" +static struct option const long_options[] = +{ + {NULL, 0, NULL, 0} +}; + /* Number of bytes to read at once. */ # define BUFLEN (1 << 16) @@ -291,7 +296,7 @@ main (int argc, char **argv) parse_long_options (argc, argv, PROGRAM_NAME, PACKAGE, Version, usage, AUTHORS, (char const *) NULL); - if (getopt_long (argc, argv, "", NULL, NULL) != -1) + if (getopt_long (argc, argv, "", long_options, NULL) != -1) usage (EXIT_FAILURE); have_read_stdin = false; diff --git a/src/dd.c b/src/dd.c index 0ff618c96..7b3d2fd37 100644 --- a/src/dd.c +++ b/src/dd.c @@ -46,6 +46,11 @@ proper_name ("David MacKenzie"), \ proper_name ("Stuart Kemp") +static struct option const long_options[] = +{ + {NULL, 0, NULL, 0} +}; + /* Use SA_NOCLDSTOP as a proxy for whether the sigaction machinery is present. */ #ifndef SA_NOCLDSTOP @@ -2394,7 +2399,7 @@ main (int argc, char **argv) usage, AUTHORS, (char const *) NULL); close_stdout_required = false; - if (getopt_long (argc, argv, "", NULL, NULL) != -1) + if (getopt_long (argc, argv, "", long_options, NULL) != -1) usage (EXIT_FAILURE); /* Initialize translation table to identity translation. */ diff --git a/src/hostid.c b/src/hostid.c index 8766edac3..c676bdcd8 100644 --- a/src/hostid.c +++ b/src/hostid.c @@ -32,6 +32,11 @@ #define AUTHORS proper_name ("Jim Meyering") +static struct option const long_options[] = +{ + {NULL, 0, NULL, 0} +}; + void usage (int status) { @@ -66,7 +71,7 @@ main (int argc, char **argv) parse_long_options (argc, argv, PROGRAM_NAME, PACKAGE_NAME, Version, usage, AUTHORS, (char const *) NULL); - if (getopt_long (argc, argv, "", NULL, NULL) != -1) + if (getopt_long (argc, argv, "", long_options, NULL) != -1) usage (EXIT_FAILURE); if (optind < argc) diff --git a/src/hostname.c b/src/hostname.c index 0a57cb409..560eb7f43 100644 --- a/src/hostname.c +++ b/src/hostname.c @@ -33,6 +33,11 @@ #define AUTHORS proper_name ("Jim Meyering") +static struct option const long_options[] = +{ + {NULL, 0, NULL, 0} +}; + #if !defined HAVE_SETHOSTNAME && defined HAVE_SYSINFO && \ defined HAVE_SYS_SYSTEMINFO_H # include @@ -83,7 +88,7 @@ main (int argc, char **argv) parse_long_options (argc, argv, PROGRAM_NAME, PACKAGE_NAME, Version, usage, AUTHORS, (char const *) NULL); - if (getopt_long (argc, argv, "", NULL, NULL) != -1) + if (getopt_long (argc, argv, "", long_options, NULL) != -1) usage (EXIT_FAILURE); if (argc == optind + 1) diff --git a/src/link.c b/src/link.c index 89711c1fd..3b9c776c1 100644 --- a/src/link.c +++ b/src/link.c @@ -36,6 +36,11 @@ #define AUTHORS proper_name ("Michael Stone") +static struct option const long_options[] = +{ + {NULL, 0, NULL, 0} +}; + void usage (int status) { @@ -69,7 +74,7 @@ main (int argc, char **argv) parse_long_options (argc, argv, PROGRAM_NAME, PACKAGE_NAME, Version, usage, AUTHORS, (char const *) NULL); - if (getopt_long (argc, argv, "", NULL, NULL) != -1) + if (getopt_long (argc, argv, "", long_options, NULL) != -1) usage (EXIT_FAILURE); if (argc < optind + 2) diff --git a/src/logname.c b/src/logname.c index 3529559ef..db5836590 100644 --- a/src/logname.c +++ b/src/logname.c @@ -30,6 +30,11 @@ #define AUTHORS proper_name ("FIXME: unknown") +static struct option const long_options[] = +{ + {NULL, 0, NULL, 0} +}; + void usage (int status) { @@ -64,7 +69,7 @@ main (int argc, char **argv) parse_long_options (argc, argv, PROGRAM_NAME, PACKAGE_NAME, Version, usage, AUTHORS, (char const *) NULL); - if (getopt_long (argc, argv, "", NULL, NULL) != -1) + if (getopt_long (argc, argv, "", long_options, NULL) != -1) usage (EXIT_FAILURE); if (optind < argc) diff --git a/src/nohup.c b/src/nohup.c index 162e7cd50..7bf32d24a 100644 --- a/src/nohup.c +++ b/src/nohup.c @@ -34,6 +34,11 @@ #define AUTHORS proper_name ("Jim Meyering") +static struct option const long_options[] = +{ + {NULL, 0, NULL, 0} +}; + /* Exit statuses. */ enum { @@ -101,7 +106,7 @@ main (int argc, char **argv) parse_long_options (argc, argv, PROGRAM_NAME, PACKAGE_NAME, Version, usage, AUTHORS, (char const *) NULL); - if (getopt_long (argc, argv, "+", NULL, NULL) != -1) + if (getopt_long (argc, argv, "+", long_options, NULL) != -1) usage (exit_internal_failure); if (argc <= optind) diff --git a/src/sleep.c b/src/sleep.c index de09ff358..889719f01 100644 --- a/src/sleep.c +++ b/src/sleep.c @@ -35,6 +35,11 @@ proper_name ("Jim Meyering"), \ proper_name ("Paul Eggert") +static struct option const long_options[] = +{ + {NULL, 0, NULL, 0} +}; + void usage (int status) { @@ -111,7 +116,7 @@ main (int argc, char **argv) parse_long_options (argc, argv, PROGRAM_NAME, PACKAGE_NAME, Version, usage, AUTHORS, (char const *) NULL); - if (getopt_long (argc, argv, "", NULL, NULL) != -1) + if (getopt_long (argc, argv, "", long_options, NULL) != -1) usage (EXIT_FAILURE); if (argc == 1) diff --git a/src/tsort.c b/src/tsort.c index 73a876c38..cb84393e9 100644 --- a/src/tsort.c +++ b/src/tsort.c @@ -40,6 +40,11 @@ #define AUTHORS proper_name ("Mark Kettenis") +static struct option const long_options[] = +{ + {NULL, 0, NULL, 0} +}; + /* Token delimiters when reading from a file. */ #define DELIM " \t\n" @@ -553,7 +558,7 @@ main (int argc, char **argv) parse_long_options (argc, argv, PROGRAM_NAME, PACKAGE, Version, usage, AUTHORS, (char const *) NULL); - if (getopt_long (argc, argv, "", NULL, NULL) != -1) + if (getopt_long (argc, argv, "", long_options, NULL) != -1) usage (EXIT_FAILURE); if (1 < argc - optind) diff --git a/src/unlink.c b/src/unlink.c index 3d8bb0bfd..f173d323e 100644 --- a/src/unlink.c +++ b/src/unlink.c @@ -36,6 +36,11 @@ #define AUTHORS proper_name ("Michael Stone") +static struct option const long_options[] = +{ + {NULL, 0, NULL, 0} +}; + void usage (int status) { @@ -68,7 +73,7 @@ main (int argc, char **argv) parse_long_options (argc, argv, PROGRAM_NAME, PACKAGE_NAME, Version, usage, AUTHORS, (char const *) NULL); - if (getopt_long (argc, argv, "", NULL, NULL) != -1) + if (getopt_long (argc, argv, "", long_options, NULL) != -1) usage (EXIT_FAILURE); if (argc < optind + 1) diff --git a/src/uptime.c b/src/uptime.c index cafcda204..d1951d50f 100644 --- a/src/uptime.c +++ b/src/uptime.c @@ -47,6 +47,11 @@ proper_name ("David MacKenzie"), \ proper_name ("Kaveh Ghazi") +static struct option const long_options[] = +{ + {NULL, 0, NULL, 0} +}; + static void print_uptime (size_t n, const STRUCT_UTMP *this) { @@ -236,7 +241,7 @@ main (int argc, char **argv) parse_long_options (argc, argv, PROGRAM_NAME, PACKAGE_NAME, Version, usage, AUTHORS, (char const *) NULL); - if (getopt_long (argc, argv, "", NULL, NULL) != -1) + if (getopt_long (argc, argv, "", long_options, NULL) != -1) usage (EXIT_FAILURE); switch (argc - optind) diff --git a/src/users.c b/src/users.c index 7b1d8cdba..4bdebff44 100644 --- a/src/users.c +++ b/src/users.c @@ -36,6 +36,11 @@ proper_name ("Joseph Arceneaux"), \ proper_name ("David MacKenzie") +static struct option const long_options[] = +{ + {NULL, 0, NULL, 0} +}; + static int userid_compare (const void *v_a, const void *v_b) { @@ -130,7 +135,7 @@ main (int argc, char **argv) parse_long_options (argc, argv, PROGRAM_NAME, PACKAGE_NAME, Version, usage, AUTHORS, (char const *) NULL); - if (getopt_long (argc, argv, "", NULL, NULL) != -1) + if (getopt_long (argc, argv, "", long_options, NULL) != -1) usage (EXIT_FAILURE); switch (argc - optind) diff --git a/src/whoami.c b/src/whoami.c index 161674c67..69f3a0262 100644 --- a/src/whoami.c +++ b/src/whoami.c @@ -35,6 +35,11 @@ #define AUTHORS proper_name ("Richard Mlynarik") +static struct option const long_options[] = +{ + {NULL, 0, NULL, 0} +}; + void usage (int status) { @@ -72,7 +77,7 @@ main (int argc, char **argv) parse_long_options (argc, argv, PROGRAM_NAME, PACKAGE_NAME, Version, usage, AUTHORS, (char const *) NULL); - if (getopt_long (argc, argv, "", NULL, NULL) != -1) + if (getopt_long (argc, argv, "", long_options, NULL) != -1) usage (EXIT_FAILURE); if (optind != argc) diff --git a/src/yes.c b/src/yes.c index 0439d0e32..8b1caa4c1 100644 --- a/src/yes.c +++ b/src/yes.c @@ -32,6 +32,11 @@ #define AUTHORS proper_name ("David MacKenzie") +static struct option const long_options[] = +{ + {NULL, 0, NULL, 0} +}; + void usage (int status) { @@ -69,7 +74,7 @@ main (int argc, char **argv) parse_long_options (argc, argv, PROGRAM_NAME, PACKAGE_NAME, Version, usage, AUTHORS, (char const *) NULL); - if (getopt_long (argc, argv, "+", NULL, NULL) != -1) + if (getopt_long (argc, argv, "+", long_options, NULL) != -1) usage (EXIT_FAILURE); char **operands = argv + optind; -- 2.15.0