diff options
author | Ruediger Meier | 2017-06-19 00:02:44 +0200 |
---|---|---|
committer | Ruediger Meier | 2017-06-26 14:38:24 +0200 |
commit | 6d7bee26bc4f5586b073f9b539453a7499403ea7 (patch) | |
tree | 1a620a48334963f9a25cc021b28d252cb10e71eb | |
parent | tools: add checkusage.sh (diff) | |
download | kernel-qcow2-util-linux-6d7bee26bc4f5586b073f9b539453a7499403ea7.tar.gz kernel-qcow2-util-linux-6d7bee26bc4f5586b073f9b539453a7499403ea7.tar.xz kernel-qcow2-util-linux-6d7bee26bc4f5586b073f9b539453a7499403ea7.zip |
flock, getopt: write --help to stdout and return 0
... and use errtryhelp() instead of usage().
Note in past "getopt --help" returned 2. But it is otherwise
documented and was just a mistake IMO. See the unreachable exit(0)
which was removed here: d1d03b54
Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
-rw-r--r-- | misc-utils/getopt.c | 48 | ||||
-rw-r--r-- | sys-utils/flock.c | 52 | ||||
-rw-r--r-- | tests/expected/getopt/options-compatible | 2 | ||||
-rw-r--r-- | tests/expected/getopt/options-invalid_getopt_option | 2 | ||||
-rw-r--r-- | tests/expected/getopt/options-invocation_without_parameters | 2 | ||||
-rw-r--r-- | tests/expected/getopt/options-no-arguments | 2 |
6 files changed, 54 insertions, 54 deletions
diff --git a/misc-utils/getopt.c b/misc-utils/getopt.c index af4cf386a..87d088ed5 100644 --- a/misc-utils/getopt.c +++ b/misc-utils/getopt.c @@ -243,9 +243,7 @@ static void __attribute__ ((__noreturn__)) parse_error(const char *message) { if (message) warnx("%s", message); - fprintf(stderr, _("Try `%s --help' for more information.\n"), - program_invocation_short_name); - exit(PARAMETER_EXIT_CODE); + errtryhelp(PARAMETER_EXIT_CODE); } @@ -325,33 +323,33 @@ static shell_t shell_type(const char *new_shell) parse_error(_("unknown shell after -s or --shell argument")); } -static void __attribute__ ((__noreturn__)) print_help(void) +static void __attribute__((__noreturn__)) usage(void) { - fputs(USAGE_HEADER, stderr); - fprintf(stderr, _( + fputs(USAGE_HEADER, stdout); + printf(_( " %1$s <optstring> <parameters>\n" " %1$s [options] [--] <optstring> <parameters>\n" " %1$s [options] -o|--options <optstring> [options] [--] <parameters>\n"), program_invocation_short_name); - fputs(USAGE_SEPARATOR, stderr); - fputs(_("Parse command options.\n"), stderr); - - fputs(USAGE_OPTIONS, stderr); - fputs(_(" -a, --alternative allow long options starting with single -\n"), stderr); - fputs(_(" -l, --longoptions <longopts> the long options to be recognized\n"), stderr); - fputs(_(" -n, --name <progname> the name under which errors are reported\n"), stderr); - fputs(_(" -o, --options <optstring> the short options to be recognized\n"), stderr); - fputs(_(" -q, --quiet disable error reporting by getopt(3)\n"), stderr); - fputs(_(" -Q, --quiet-output no normal output\n"), stderr); - fputs(_(" -s, --shell <shell> set quoting conventions to those of <shell>\n"), stderr); - fputs(_(" -T, --test test for getopt(1) version\n"), stderr); - fputs(_(" -u, --unquoted do not quote the output\n"), stderr); - fputs(USAGE_SEPARATOR, stderr); - fputs(USAGE_HELP, stderr); - fputs(USAGE_VERSION, stderr); - fprintf(stderr, USAGE_MAN_TAIL("getopt(1)")); - exit(PARAMETER_EXIT_CODE); + fputs(USAGE_SEPARATOR, stdout); + fputs(_("Parse command options.\n"), stdout); + + fputs(USAGE_OPTIONS, stdout); + fputs(_(" -a, --alternative allow long options starting with single -\n"), stdout); + fputs(_(" -l, --longoptions <longopts> the long options to be recognized\n"), stdout); + fputs(_(" -n, --name <progname> the name under which errors are reported\n"), stdout); + fputs(_(" -o, --options <optstring> the short options to be recognized\n"), stdout); + fputs(_(" -q, --quiet disable error reporting by getopt(3)\n"), stdout); + fputs(_(" -Q, --quiet-output no normal output\n"), stdout); + fputs(_(" -s, --shell <shell> set quoting conventions to those of <shell>\n"), stdout); + fputs(_(" -T, --test test for getopt(1) version\n"), stdout); + fputs(_(" -u, --unquoted do not quote the output\n"), stdout); + fputs(USAGE_SEPARATOR, stdout); + fputs(USAGE_HELP, stdout); + fputs(USAGE_VERSION, stdout); + printf(USAGE_MAN_TAIL("getopt(1)")); + exit(EXIT_SUCCESS); } int main(int argc, char *argv[]) @@ -417,7 +415,7 @@ int main(int argc, char *argv[]) getopt_long_fp = getopt_long_only; break; case 'h': - print_help(); + usage(); case 'o': free(ctl.optstr); ctl.optstr = xstrdup(optarg); diff --git a/sys-utils/flock.c b/sys-utils/flock.c index 003a12618..5abe2def5 100644 --- a/sys-utils/flock.c +++ b/sys-utils/flock.c @@ -46,34 +46,34 @@ #include "monotonic.h" #include "timer.h" -static void __attribute__((__noreturn__)) usage(int ex) +static void __attribute__((__noreturn__)) usage(void) { - fprintf(stderr, USAGE_HEADER); - fprintf(stderr, + fputs(USAGE_HEADER, stdout); + printf( _(" %1$s [options] <file>|<directory> <command> [<argument>...]\n" " %1$s [options] <file>|<directory> -c <command>\n" " %1$s [options] <file descriptor number>\n"), program_invocation_short_name); - fputs(USAGE_SEPARATOR, stderr); - fputs(_("Manage file locks from shell scripts.\n"), stderr); - - fputs(USAGE_OPTIONS, stderr); - fputs(_( " -s, --shared get a shared lock\n"), stderr); - fputs(_( " -x, --exclusive get an exclusive lock (default)\n"), stderr); - fputs(_( " -u, --unlock remove a lock\n"), stderr); - fputs(_( " -n, --nonblock fail rather than wait\n"), stderr); - fputs(_( " -w, --timeout <secs> wait for a limited amount of time\n"), stderr); - fputs(_( " -E, --conflict-exit-code <number> exit code after conflict or timeout\n"), stderr); - fputs(_( " -o, --close close file descriptor before running command\n"), stderr); - fputs(_( " -c, --command <command> run a single command string through the shell\n"), stderr); - fputs(_( " -F, --no-fork execute command without forking\n"), stderr); - fputs(_( " --verbose increase verbosity\n"), stderr); - fprintf(stderr, USAGE_SEPARATOR); - fprintf(stderr, USAGE_HELP); - fprintf(stderr, USAGE_VERSION); - fprintf(stderr, USAGE_MAN_TAIL("flock(1)")); - exit(ex); + fputs(USAGE_SEPARATOR, stdout); + fputs(_("Manage file locks from shell scripts.\n"), stdout); + + fputs(USAGE_OPTIONS, stdout); + fputs(_( " -s, --shared get a shared lock\n"), stdout); + fputs(_( " -x, --exclusive get an exclusive lock (default)\n"), stdout); + fputs(_( " -u, --unlock remove a lock\n"), stdout); + fputs(_( " -n, --nonblock fail rather than wait\n"), stdout); + fputs(_( " -w, --timeout <secs> wait for a limited amount of time\n"), stdout); + fputs(_( " -E, --conflict-exit-code <number> exit code after conflict or timeout\n"), stdout); + fputs(_( " -o, --close close file descriptor before running command\n"), stdout); + fputs(_( " -c, --command <command> run a single command string through the shell\n"), stdout); + fputs(_( " -F, --no-fork execute command without forking\n"), stdout); + fputs(_( " --verbose increase verbosity\n"), stdout); + fputs(USAGE_SEPARATOR, stdout); + fputs(USAGE_HELP, stdout); + fputs(USAGE_VERSION, stdout); + printf(USAGE_MAN_TAIL("flock(1)")); + exit(EXIT_SUCCESS); } static sig_atomic_t timeout_expired = 0; @@ -172,8 +172,10 @@ int main(int argc, char *argv[]) strutils_set_exitcode(EX_USAGE); - if (argc < 2) - usage(EX_USAGE); + if (argc < 2) { + warnx(_("not enough arguments")); + errtryhelp(EX_USAGE); + } memset(&timeout, 0, sizeof timeout); @@ -217,7 +219,7 @@ int main(int argc, char *argv[]) printf(UTIL_LINUX_VERSION); exit(EX_OK); case 'h': - usage(0); + usage(); default: errtryhelp(EX_USAGE); } diff --git a/tests/expected/getopt/options-compatible b/tests/expected/getopt/options-compatible index 585de608a..66e42a7b5 100644 --- a/tests/expected/getopt/options-compatible +++ b/tests/expected/getopt/options-compatible @@ -1,5 +1,5 @@ getopt: missing optstring argument -Try `getopt --help' for more information. +Try 'getopt --help' for more information. exit value: 2 -- exit value: 0 diff --git a/tests/expected/getopt/options-invalid_getopt_option b/tests/expected/getopt/options-invalid_getopt_option index 531cc9828..b3577e027 100644 --- a/tests/expected/getopt/options-invalid_getopt_option +++ b/tests/expected/getopt/options-invalid_getopt_option @@ -1,3 +1,3 @@ getopt: invalid option -- 'b' -Try `getopt --help' for more information. +Try 'getopt --help' for more information. exit value: 2 diff --git a/tests/expected/getopt/options-invocation_without_parameters b/tests/expected/getopt/options-invocation_without_parameters index 08b3ed5cf..f1ecc1610 100644 --- a/tests/expected/getopt/options-invocation_without_parameters +++ b/tests/expected/getopt/options-invocation_without_parameters @@ -1,3 +1,3 @@ getopt: missing optstring argument -Try `getopt --help' for more information. +Try 'getopt --help' for more information. exit value: 2 diff --git a/tests/expected/getopt/options-no-arguments b/tests/expected/getopt/options-no-arguments index 08b3ed5cf..f1ecc1610 100644 --- a/tests/expected/getopt/options-no-arguments +++ b/tests/expected/getopt/options-no-arguments @@ -1,3 +1,3 @@ getopt: missing optstring argument -Try `getopt --help' for more information. +Try 'getopt --help' for more information. exit value: 2 |