From: Junio C Hamano <gitster@pobox.com>
To: "John Cai via GitGitGadget" <gitgitgadget@gmail.com>
Cc: git@vger.kernel.org, "René Scharfe" <l.s.r@web.de>,
"John Cai" <johncai86@gmail.com>
Subject: Re: [PATCH v2 1/2] parse-options.h: add parse_opt_expiry_date helper
Date: Mon, 03 Jan 2022 18:26:42 -0800 [thread overview]
Message-ID: <xmqqlezwfd7h.fsf@gitster.g> (raw)
In-Reply-To: bcd74559c2474451687c81e97834b13a859d2191.1641223223.git.gitgitgadget@gmail.com
"John Cai via GitGitGadget" <gitgitgadget@gmail.com> writes:
> From: John Cai <johncai86@gmail.com>
>
> Extract the logic in parse_opt_expiry_date_cb into a helper
> parse_opt_expiry_date. This is to prepare for the following commit where
> we need to parse an expiry date that gets passed into a callback
> function in opt->value as part of a struct.
>
> The next commit will utilize this helper in a callback function that
> aims to wrap the functionality in parse_opt_expiry_date_cb.
>
> Signed-off-by: "John Cai" <johncai86@gmail.com>
> ---
> parse-options-cb.c | 7 ++++++-
> parse-options.h | 1 +
> 2 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/parse-options-cb.c b/parse-options-cb.c
> index 3c811e1e4a7..3edb88a54d8 100644
> --- a/parse-options-cb.c
> +++ b/parse-options-cb.c
> @@ -34,10 +34,15 @@ int parse_opt_abbrev_cb(const struct option *opt, const char *arg, int unset)
>
> int parse_opt_expiry_date_cb(const struct option *opt, const char *arg,
> int unset)
> +{
> + return parse_opt_expiry_date((timestamp_t *)opt->value, arg, unset);
> +}
> +
> +int parse_opt_expiry_date(timestamp_t *t, const char *arg, int unset)
> {
> if (unset)
> arg = "never";
> - if (parse_expiry_date(arg, (timestamp_t *)opt->value))
> + if (parse_expiry_date(arg, t))
> die(_("malformed expiration date '%s'"), arg);
> return 0;
> }
Does this even belong to parse-options-cb.c file, though? It's
interface tells us that it is not limited to the parse-options
infrastructure (i.e. it does not even take "struct option" at all).
I am not sure how having this new function will be helpful to begin
with. We'll see why it helps by looking at the next step, I
presume, but I wonder if the new caller of this function should just
call parse_expiry_date() itself (with "unset means 'never'").
> diff --git a/parse-options.h b/parse-options.h
> index 275fb440818..0a15bac8619 100644
> --- a/parse-options.h
> +++ b/parse-options.h
> @@ -301,6 +301,7 @@ enum parse_opt_result parse_opt_unknown_cb(struct parse_opt_ctx_t *ctx,
> const char *, int);
> int parse_opt_passthru(const struct option *, const char *, int);
> int parse_opt_passthru_argv(const struct option *, const char *, int);
> +int parse_opt_expiry_date(timestamp_t *, const char *, int);
>
> #define OPT__VERBOSE(var, h) OPT_COUNTUP('v', "verbose", (var), (h))
> #define OPT__QUIET(var, h) OPT_COUNTUP('q', "quiet", (var), (h))
next prev parent reply other threads:[~2022-01-04 2:26 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-31 6:29 [PATCH 0/2] reflog.c: switch to use parse-options API John Cai via GitGitGadget
2021-12-31 6:29 ` [PATCH 1/2] builtin/reflog.c: use parse-options for expire subcommand John Cai via GitGitGadget
2022-01-01 2:06 ` John Cai
2022-01-01 11:16 ` René Scharfe
2022-01-01 19:09 ` John Cai
2022-01-02 9:00 ` René Scharfe
2021-12-31 6:29 ` [PATCH 2/2] builtin/reflog.c: switch to use parse-options API for delete subcommand John Cai via GitGitGadget
2022-01-03 15:20 ` [PATCH v2 0/2] reflog.c: switch to use parse-options API John Cai via GitGitGadget
2022-01-03 15:20 ` [PATCH v2 1/2] parse-options.h: add parse_opt_expiry_date helper John Cai via GitGitGadget
2022-01-04 2:26 ` Junio C Hamano [this message]
2022-01-03 15:20 ` [PATCH v2 2/2] builtin/reflog.c: switch to use parse-options API for delete subcommand John Cai via GitGitGadget
2022-01-04 2:36 ` Junio C Hamano
2022-01-04 17:41 ` [PATCH v3] builtin/reflog.c: use parse-options api for expire, delete subcommands John Cai via GitGitGadget
2022-01-04 22:04 ` Junio C Hamano
2022-01-05 4:06 ` [PATCH v4] " John Cai via GitGitGadget
2022-01-05 20:34 ` Junio C Hamano
2022-01-06 19:06 ` [PATCH v5] " John Cai via GitGitGadget
2022-01-06 21:09 ` Junio C Hamano
2022-01-06 21:32 ` John Cai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqlezwfd7h.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=johncai86@gmail.com \
--cc=l.s.r@web.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.