Re: [PATCH v2 2/3] pretty.c: capture invalid trailer argument
- From
Hariom verma <hariom18599@gmail.com>
- Date
- Jan 30, 2021, 19:00 UTC
- Message-ID
- <CA+CkUQ-_HQG4UtdZGGc3mpXB3OnsZ0kzAPZfLLP2sV1HY9tw6A@mail.gmail.com>
- In-Reply-To
- <xmqqsg6jqomc.fsf@gitster.c.googlers.com>
Hi,
On Sat, Jan 30, 2021 at 5:31 AM Junio C Hamano <gitster@pobox.com> wrote:
Show 18 quoted lines
>
> "Hariom Verma via GitGitGadget" <gitgitgadget@gmail.com> writes:
>
> > + size_t invalid_arg_len = strcspn(*arg, ",)");
> > + *invalid_arg = xstrndup(*arg, invalid_arg_len);
> > + return 1;
>
> How about doing this only when invalid_arg is not NULL, i.e.
>
> } else if (!match_placeholder_bool_arg(....) &&
> ...
> !match_placeholder_bool_arg(....)) {
> if (invalid_arg) {
> size_t len = strcspn(*arg, ",)");
> *invalid_arg = xstrndup(*arg, len);
> }
> return -1;
> }Sounds like an improvement to the current version. Will change.
Show 35 quoted lines
> Note that I just used 'len'; when the scope of a variable is so
> short, it is clear the length of what thing it refers to from the
> context, and there is no point in using a variable name that long.
>
> In any case, by doing so, the callers that are not interested in the
> report can just pass NULL, which means ...
>
> > @@ -1464,12 +1472,13 @@ static size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */
> > struct strbuf sepbuf = STRBUF_INIT;
> > struct strbuf kvsepbuf = STRBUF_INIT;
> > size_t ret = 0;
> > + char *unused = NULL;
>
> ... this will become unneeded, and ...
>
> > opts.no_divider = 1;
> >
> > if (*arg == ':') {
> > arg++;
> > - if (format_set_trailers_options(&opts, &filter_list, &sepbuf, &kvsepbuf, &arg))
> > + if (format_set_trailers_options(&opts, &filter_list, &sepbuf, &kvsepbuf, &arg, &unused))
> > goto trailer_out;
>
> ... this will pass NULL, and ...
>
> > }
> > if (*arg == ')') {
> > @@ -1479,6 +1488,7 @@ static size_t format_commit_one(struct strbuf *sb, /* in UTF-8 */
> > trailer_out:
> > string_list_clear(&filter_list, 0);
> > strbuf_release(&sepbuf);
> > + free((char *)unused);
>
> ... this will become unneeded.
>Thanks, Hariom Verma