Re: [RFC/PATCH v11 02/13] bisect: rewrite `check_term_format` shell function in C
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 2, 2016, 17:31 UTC
- Message-ID
- <xmqq7fbzf56s.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <0102015640423cc5-691952fa-3726-4132-bcc1-dfa55d4c0895-000000@eu-west-1.amazonses.com>
Pranit Bauva <pranit.bauva@gmail.com> writes:
Show 17 quoted lines
> +/*
> + * Check whether the string `term` belongs to the set of strings
> + * included in the variable arguments.
> + */
> +static int one_of(const char *term, ...)
> +{
> + int res = 0;
> + va_list matches;
> + const char *match;
> +
> + va_start(matches, term);
> + while (!res && (match = va_arg(matches, const char *)))
> + res = !strcmp(term, match);
> + va_end(matches);
> +
> + return res;
> +}It might be safer to mark this function with LAST_ARG_MUST_BE_NULL, but because this is static to this function, it may not matter too much. Just an observation, not a strong suggestion to change the patch.
Show 7 quoted lines
> +static int check_term_format(const char *term, const char *orig_term)
> +{
> + int res;
> + char *new_term = xstrfmt("refs/bisect/%s", term);
> +
> + res = check_refname_format(new_term, 0);
> + free(new_term);Yup, that looks much more straight-forward than using a one-time-use strbuf.