diff options
author | Ævar Arnfjörð Bjarmason <avarab@gmail.com> | 2022-03-17 18:08:38 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-03-18 01:03:12 (GMT) |
commit | a34393f5f8152ad8bdbf15bccffc2be12a9a19ca (patch) | |
tree | de26ab22e6c79cb3fb8b39b9e7a402114f4a8635 /builtin/reflog.c | |
parent | cbe485298bf06a4e6377f5a692c82a9e3ad38069 (diff) | |
download | git-a34393f5f8152ad8bdbf15bccffc2be12a9a19ca.zip git-a34393f5f8152ad8bdbf15bccffc2be12a9a19ca.tar.gz git-a34393f5f8152ad8bdbf15bccffc2be12a9a19ca.tar.bz2 |
reflog exists: use parse_options() API
Change the "reflog exists" command added in afcb2e7a3b8 (git-reflog:
add exists command, 2015-07-21) to use parse_options() instead of its
own custom command-line parser. This continues work started in
33d7bdd6459 (builtin/reflog.c: use parse-options api for expire,
delete subcommands, 2022-01-06).
As a result we'll understand the --end-of-options synonym for "--", so
let's test for that.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/reflog.c')
-rw-r--r-- | builtin/reflog.c | 38 |
1 files changed, 16 insertions, 22 deletions
diff --git a/builtin/reflog.c b/builtin/reflog.c index 4587644..9847e9d 100644 --- a/builtin/reflog.c +++ b/builtin/reflog.c @@ -27,8 +27,10 @@ static const char *const reflog_delete_usage[] = { NULL }; -static const char reflog_exists_usage[] = - BUILTIN_REFLOG_EXISTS_USAGE; +static const char *const reflog_exists_usage[] = { + BUILTIN_REFLOG_EXISTS_USAGE, + NULL, +}; static timestamp_t default_reflog_expire; static timestamp_t default_reflog_expire_unreachable; @@ -350,28 +352,20 @@ static int cmd_reflog_delete(int argc, const char **argv, const char *prefix) static int cmd_reflog_exists(int argc, const char **argv, const char *prefix) { - int i, start = 0; - - for (i = 1; i < argc; i++) { - const char *arg = argv[i]; - if (!strcmp(arg, "--")) { - i++; - break; - } - else if (arg[0] == '-') - usage(_(reflog_exists_usage)); - else - break; - } - - start = i; + struct option options[] = { + OPT_END() + }; + const char *refname; - if (argc - start != 1) - usage(_(reflog_exists_usage)); + argc = parse_options(argc, argv, prefix, options, reflog_exists_usage, + 0); + if (!argc) + usage_with_options(reflog_exists_usage, options); - if (check_refname_format(argv[start], REFNAME_ALLOW_ONELEVEL)) - die(_("invalid ref format: %s"), argv[start]); - return !reflog_exists(argv[start]); + refname = argv[0]; + if (check_refname_format(refname, REFNAME_ALLOW_ONELEVEL)) + die(_("invalid ref format: %s"), refname); + return !reflog_exists(refname); } /* |