summaryrefslogtreecommitdiff
path: root/builtin/reflog.c
diff options
context:
space:
mode:
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>2022-03-17 18:08:38 (GMT)
committerJunio C Hamano <gitster@pobox.com>2022-03-18 01:03:12 (GMT)
commita34393f5f8152ad8bdbf15bccffc2be12a9a19ca (patch)
treede26ab22e6c79cb3fb8b39b9e7a402114f4a8635 /builtin/reflog.c
parentcbe485298bf06a4e6377f5a692c82a9e3ad38069 (diff)
downloadgit-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.c38
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);
}
/*