Use --help suggestion on invalid option

The current default is to print all usage() output. This is overkill
in many case.

Addresses: https://github.com/karelzak/util-linux/issues/338
Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2016-12-19 13:13:34 +01:00
parent 3077b37101
commit 677ec86cef
93 changed files with 109 additions and 133 deletions

View File

@ -93,7 +93,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
return EXIT_SUCCESS;

View File

@ -46,7 +46,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
if (argc != 5)

View File

@ -2587,6 +2587,8 @@ int main(int argc, char *argv[])
case 'z':
cf->zero_start = 1;
break;
default:
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -46,7 +46,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
if (argc != 3)

View File

@ -209,7 +209,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
argc -= optind;

View File

@ -926,7 +926,7 @@ int main(int argc, char **argv)
fdisk_set_size_unit(cxt, FDISK_SIZEUNIT_BYTES);
break;
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -684,7 +684,7 @@ int main(int argc, char **argv)
blksize = strtou32_or_err(optarg, _("invalid blocksize argument"));
break;
default:
usage(FSCK_EX_USAGE);
errtryhelp(FSCK_EX_USAGE);
}
if ((argc - optind) != 1)

View File

@ -1323,7 +1323,7 @@ main(int argc, char **argv) {
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(FSCK_EX_USAGE);
}
argc -= optind;
argv += optind;

View File

@ -218,7 +218,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
ct = argc - optind;

View File

@ -172,7 +172,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -769,7 +769,7 @@ int main(int argc, char **argv)
opt_holes = 1;
break;
default:
usage(FSCK_EX_USAGE);
errtryhelp(MKFS_EX_USAGE);
}
}

View File

@ -793,7 +793,7 @@ int main(int argc, char ** argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(MKFS_EX_USAGE);
}
argc -= optind;
argv += optind;

View File

@ -402,7 +402,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -876,9 +876,8 @@ int main(int argc, char **argv)
case 'V':
printf(UTIL_LINUX_VERSION);
return EXIT_SUCCESS;
case '?':
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -126,7 +126,7 @@ int main(int argc, char *argv[])
case 'h':
usage(EXIT_SUCCESS);
default:
usage(EXIT_FAILURE);
errtryhelp(EXIT_FAILURE);
}
/*

View File

@ -88,7 +88,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
if (argc != 4)

View File

@ -2102,7 +2102,7 @@ int main(int argc, char *argv[])
sf->notell = 1;
break;
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -168,8 +168,7 @@ int main(int argc, char *argv[])
#endif
break;
default:
usage(stderr);
break;
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -212,6 +212,12 @@ errmsg(char doexit, int excode, char adderr, const char *fmt, ...)
exit(eval); \
})
#define errtryh(eval) __extension__ ({ \
fprintf(stderr, _("Try '%s -h' for more information.\n"), \
program_invocation_short_name); \
exit(eval); \
})
static inline __attribute__((const)) int is_power_of_2(unsigned long num)
{

View File

@ -175,7 +175,7 @@ static void parse_argv(struct chfn_control *ctl, int argc, char **argv)
case 'u':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
ctl->changed = 1;
ctl->interactive = 0;

View File

@ -153,7 +153,7 @@ static void parse_argv(int argc, char **argv, struct sinfo *pinfo)
pinfo->shell = optarg;
break;
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}
/* done parsing arguments. check for a username. */

View File

@ -1002,8 +1002,7 @@ int main(int argc, char **argv)
ctl.time_fmt = which_time_format(optarg);
break;
default:
usage(&ctl, stderr);
break;
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -1443,7 +1443,7 @@ int main(int argc, char *argv[])
break;
}
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -200,7 +200,7 @@ int main(int argc, char *argv[])
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
if (!(pw_entry = getpwuid(getuid())))

View File

@ -59,8 +59,7 @@ int main(int argc, char *argv[])
printf(UTIL_LINUX_VERSION);
return EXIT_FAILURE;
default:
usage(stderr);
break;
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -856,7 +856,7 @@ su_main (int argc, char **argv, int mode)
exit(EXIT_SUCCESS);
default:
usage (EXIT_FAILURE);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -365,7 +365,7 @@ int main(int argc, char **argv)
printf(UTIL_LINUX_VERSION);
return EXIT_SUCCESS;
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -765,10 +765,10 @@ int main(int argc, char **argv)
/* ignore - backward compatibility */
break;
case 'h':
err = 0;
/* fallthrough */
usage(0);
break;
default:
usage(err);
errtryh(EXIT_FAILURE);
}
}

View File

@ -394,9 +394,8 @@ int main(int argc, char **argv)
return EXIT_SUCCESS;
case 'h':
usage(stdout);
case '?':
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -1477,8 +1477,7 @@ int main(int argc, char *argv[])
force_tree = 1;
break;
default:
usage(stderr);
break;
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -1196,9 +1196,8 @@ int main(int argc, char **argv)
errx(EXIT_FAILURE, _("invalid structured data parameter: '%s'"), optarg);
add_structured_data_param(get_user_structured_data(&ctl), optarg);
break;
case '?':
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}
argc -= optind;

View File

@ -127,9 +127,8 @@ main(int argc, char *argv[])
return EXIT_SUCCESS;
case 'h':
usage(stdout);
case '?':
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
argc -= optind;
argv += optind;

View File

@ -586,9 +586,8 @@ int main(int argc, char *argv[])
case 'u':
disable_columns_truncate();
break;
case '?':
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -169,7 +169,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -400,7 +400,7 @@ main(int argc, char **argv)
flags |= NAMEI_VERTICAL;
break;
default:
usage(EXIT_FAILURE);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -164,7 +164,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
argc -= optind;

View File

@ -37,6 +37,7 @@
#include "c.h"
#include "xalloc.h"
#include "strutils.h"
#include "nls.h"
#define LOG(level,args) if (loglev >= level) { fprintf args; }
@ -279,8 +280,7 @@ int main(int argc, char *argv[])
usage(stdout);
break;
default:
usage(stderr);
break;
errtryh(EXIT_FAILURE);
}
}

View File

@ -641,7 +641,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -72,7 +72,7 @@ main (int argc, char *argv[])
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
switch (do_type) {

View File

@ -546,8 +546,7 @@ main(int argc, char **argv)
printf(UTIL_LINUX_VERSION);
return EXIT_SUCCESS;
default:
usage(stderr);
break;
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -439,8 +439,6 @@ int main(int argc, char **argv)
while((c = getopt_long(argc, argv, "+abdD:fiphmoP:T:rRvV", longopts, NULL)) != -1)
{
int ret = EXIT_FAILURE;
switch (c) {
case 'a':
ctl->all_tasks = 1;
@ -496,10 +494,9 @@ int main(int argc, char **argv)
printf(UTIL_LINUX_VERSION);
return EXIT_SUCCESS;
case 'h':
ret = EXIT_SUCCESS;
/* fallthrough */
show_usage(EXIT_SUCCESS);
default:
show_usage(ret);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -203,7 +203,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
switch (ioclass) {

View File

@ -172,8 +172,7 @@ int main(int argc, char **argv)
usage(stdout);
break;
default:
usage(stderr);
break;
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -163,8 +163,7 @@ int main(int argc, char **argv)
act = ACT_ZEROOUT;
break;
default:
usage(stderr);
break;
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -333,7 +333,7 @@ int main(int argc, char *argv[])
printf(UTIL_LINUX_VERSION);
return EXIT_SUCCESS;
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -308,6 +308,8 @@ int main(int argc, char **argv)
case 'V':
printf(UTIL_LINUX_VERSION);
return EXIT_SUCCESS;
default:
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -100,7 +100,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
if (argc < 2)

View File

@ -1380,9 +1380,8 @@ int main(int argc, char *argv[])
case OPT_TIME_FORMAT:
ctl.time_fmt = which_time_format(optarg);
break;
case '?':
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}
argc -= optind;

View File

@ -268,8 +268,7 @@ static void parse_args(struct eject_control *ctl, int argc, char **argv)
exit(EXIT_SUCCESS);
break;
default:
case '?':
usage(stderr);
errtryhelp(EXIT_FAILURE);
break;
}
}

View File

@ -347,8 +347,7 @@ int main(int argc, char **argv)
printf(UTIL_LINUX_VERSION);
return EXIT_SUCCESS;
default:
usage(stderr);
break;
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -214,12 +214,10 @@ int main(int argc, char *argv[])
case 'V':
printf(UTIL_LINUX_VERSION);
exit(EX_OK);
case 'h':
usage(0);
default:
/* optopt will be set if this was an unrecognized
* option, i.e. *not* 'h' or '?
*/
usage(optopt ? EX_USAGE : 0);
break;
errtryhelp(EX_USAGE);
}
}

View File

@ -107,8 +107,7 @@ int main(int argc, char **argv)
printf(UTIL_LINUX_VERSION);
exit(EXIT_SUCCESS);
default:
usage(stderr);
break;
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -331,7 +331,7 @@ int main(int argc, char **argv)
verbose = 1;
break;
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
break;
}
}

View File

@ -1850,9 +1850,9 @@ int main(int argc, char **argv)
out_version();
return 0;
case 'h': /* --help */
case '?':
default:
usage(NULL);
default:
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -127,8 +127,7 @@ int main(int argc, char **argv)
printf(UTIL_LINUX_VERSION);
return EXIT_SUCCESS;
default:
ask_shm = ask_msg = ask_sem = 0;
break;
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -403,7 +403,7 @@ int main(int argc, char **argv)
printf(UTIL_LINUX_VERSION);
return EXIT_SUCCESS;
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}
@ -413,7 +413,7 @@ int main(int argc, char **argv)
/* print usage if we still have some arguments left over */
if (optind < argc) {
warnx(_("unknown argument: %s"), argv[optind]);
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;

View File

@ -155,7 +155,7 @@ int main (int argc, char **argv)
printf(UTIL_LINUX_VERSION);
return EXIT_SUCCESS;
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -356,8 +356,7 @@ int main(int argc, char **argv)
case 'h':
usage(EXIT_SUCCESS);
default:
warnx(_("invalid option"));
usage(EXIT_FAILURE);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -698,7 +698,7 @@ int main(int argc, char **argv)
flags |= LOOPDEV_FL_SIZELIMIT;
break;
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -2051,7 +2051,7 @@ int main(int argc, char *argv[])
printf(UTIL_LINUX_VERSION);
return EXIT_SUCCESS;
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -491,7 +491,7 @@ int main(int argc, char **argv)
lsmem->want_table = 0;
break;
default:
lsmem_usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -718,9 +718,8 @@ int main(int argc, char *argv[])
ls.fltr_ntypes++;
break;
}
case '?':
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -1017,8 +1017,7 @@ int main(int argc, char **argv)
mnt_context_set_source(cxt, optarg);
break;
default:
usage(stderr);
break;
errtryhelp(MOUNT_EX_USAGE);
}
}

View File

@ -173,8 +173,7 @@ int main(int argc, char **argv)
printf(UTIL_LINUX_VERSION);
return EXIT_SUCCESS;
default:
usage(stderr);
break;
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -338,7 +338,7 @@ int main(int argc, char *argv[])
break;
#endif
default:
usage(EXIT_FAILURE);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -65,7 +65,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
if (argc != 3)

View File

@ -607,9 +607,8 @@ int main(int argc, char **argv)
case RAW_OPTION:
raw = 1;
break;
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}
if (argc > optind && pid)

View File

@ -213,7 +213,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -379,7 +379,7 @@ int main(int argc, char *argv[])
warnx(_("unrecognized option '--list'"));
/* fallthrough */
default:
show_usage(NULL);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -750,10 +750,8 @@ int main(int argc, char **argv)
case 'V':
printf(UTIL_LINUX_VERSION);
return EXIT_SUCCESS;
case '?':
usage(stderr);
default:
errx(EXIT_FAILURE, _("unrecognized option '%c'"), c);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -80,7 +80,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
if (argc - optind < 1)

View File

@ -221,9 +221,8 @@ int main(int argc, char *argv[])
case 'U':
add_uuid(optarg);
break;
case '?':
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}
argv += optind;

View File

@ -960,9 +960,8 @@ int main(int argc, char *argv[])
return EXIT_SUCCESS;
case 0:
break;
case '?':
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}
argv += optind;

View File

@ -238,7 +238,7 @@ int main(int argc, char **argv)
printf(UTIL_LINUX_VERSION);
return EXIT_SUCCESS;
default:
print_usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -610,8 +610,7 @@ int main(int argc, char **argv)
print_version();
break;
default:
usage(stderr);
break;
errtryhelp(MOUNT_EX_USAGE);
}
}

View File

@ -375,7 +375,7 @@ int main(int argc, char *argv[])
propagation = parse_propagation(optarg);
break;
default:
usage(EXIT_FAILURE);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -553,10 +553,8 @@ int main(int argc, char *argv[])
noident = 1;
notimeouts = 1;
break;
case '?':
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -640,7 +640,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -115,7 +115,7 @@ int main(int argc, char *argv[])
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
argc -= optind;

View File

@ -731,7 +731,7 @@ int main(int argc, char **argv)
usage(stdout);
break;
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
argc -= optind;
argv += optind;

View File

@ -174,7 +174,7 @@ main(int argc, char *argv[])
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
argc -= optind;
argv += optind;
@ -182,7 +182,7 @@ main(int argc, char *argv[])
if ((argc < 1 && !tname) || argc > 3) {
warnx(_("wrong number of arguments"));
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
if (!tname)
tname = argv[idx++];

View File

@ -670,7 +670,7 @@ static void parse_option(struct setterm_control *ctl, int ac, char **av)
case OPT_HELP:
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}
}

View File

@ -217,7 +217,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}
argc -= optind;

View File

@ -362,7 +362,7 @@ int main(int argc, char **argv)
do_write(&ctl);
break;
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
free(ctl.dst_tty_path);
return EXIT_SUCCESS;

View File

@ -223,7 +223,7 @@ int main(int argc, char **argv)
case 'H':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
if (optind != argc)

View File

@ -266,7 +266,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -178,7 +178,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
if (argc > 1)

View File

@ -196,7 +196,7 @@ int main(int argc, char **argv)
xflag = 1;
break;
default:
usage(EXIT_FAILURE);
errtryhelp(EXIT_FAILURE);
}
argc -= optind;
argv += optind;

View File

@ -137,7 +137,7 @@ parse_args(int argc, char **argv, struct hexdump *hex)
exit(EXIT_SUCCESS);
break;
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
}

View File

@ -64,7 +64,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
setvbuf(stdin, NULL, _IONBF, 0);

View File

@ -127,7 +127,7 @@ int main(int argc, char *argv[])
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
argc -= optind;

View File

@ -268,7 +268,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
if (argc == optind)

View File

@ -192,7 +192,7 @@ int main(int argc, char **argv)
case 'h':
usage(stdout);
default:
usage(stderr);
errtryhelp(EXIT_FAILURE);
}
setupterm(termtype, STDOUT_FILENO, &ret);
switch (ret) {