cat-file: make the options mutually exclusive
We only parse the options if 2 or 3 arguments are specified. Update 'struct option options[]' to use OPT_CMDMODE rather than OPT_SET_INT to allow only one mutually exclusive option and avoid the need for checking number of arguments. This was written by Junio C Hamano, tested by me. Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Karthik Nayak <karthik.188@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
46f034483e
commit
b48158ac94
@ -362,12 +362,12 @@ int cmd_cat_file(int argc, const char **argv, const char *prefix)
|
||||
|
||||
const struct option options[] = {
|
||||
OPT_GROUP(N_("<type> can be one of: blob, tree, commit, tag")),
|
||||
OPT_SET_INT('t', NULL, &opt, N_("show object type"), 't'),
|
||||
OPT_SET_INT('s', NULL, &opt, N_("show object size"), 's'),
|
||||
OPT_SET_INT('e', NULL, &opt,
|
||||
OPT_CMDMODE('t', NULL, &opt, N_("show object type"), 't'),
|
||||
OPT_CMDMODE('s', NULL, &opt, N_("show object size"), 's'),
|
||||
OPT_CMDMODE('e', NULL, &opt,
|
||||
N_("exit with zero when there's no error"), 'e'),
|
||||
OPT_SET_INT('p', NULL, &opt, N_("pretty-print object's content"), 'p'),
|
||||
OPT_SET_INT(0, "textconv", &opt,
|
||||
OPT_CMDMODE('p', NULL, &opt, N_("pretty-print object's content"), 'p'),
|
||||
OPT_CMDMODE(0, "textconv", &opt,
|
||||
N_("for blob objects, run textconv on object's content"), 'c'),
|
||||
{ OPTION_CALLBACK, 0, "batch", &batch, "format",
|
||||
N_("show info and content of objects fed from the standard input"),
|
||||
@ -380,9 +380,6 @@ int cmd_cat_file(int argc, const char **argv, const char *prefix)
|
||||
|
||||
git_config(git_cat_file_config, NULL);
|
||||
|
||||
if (argc != 3 && argc != 2)
|
||||
usage_with_options(cat_file_usage, options);
|
||||
|
||||
argc = parse_options(argc, argv, prefix, options, cat_file_usage, 0);
|
||||
|
||||
if (opt) {
|
||||
|
Loading…
Reference in New Issue
Block a user