Re: [PATCH v3 2/4] ref-filter: 'contents:trailers' show error if `:` is missing
Eric Sunshine <sunshine@sunshineco.com> writes:
Show 15 quoted lines
> On Fri, Aug 21, 2020 at 5:06 PM Hariom Verma via GitGitGadget
> <gitgitgadget@gmail.com> wrote:
>> The 'contents' atom does not show any error if used with 'trailers'
>> atom and colon is missing before trailers arguments.
>>
>> e.g %(contents:trailersonly) works, while it shouldn't.
>>
>> It is definitely not an expected behavior.
>>
>> Let's fix this bug.
>>
>> Acked-by: Eric Sunshine <sunshine@sunshineco.com>
>
> I didn't "ack" this patch. If you think some sort of attribution with
> my name is warranted, then a "Helped-by:" would be more appropriate.
Yes, I did exactly that after moving it just above Hariom's sign-off.
Show 22 quoted lines
>> Signed-off-by: Hariom Verma <hariom18599@gmail.com>
>> ---
>> diff --git a/ref-filter.c b/ref-filter.c
>> @@ -345,9 +345,11 @@ static int contents_atom_parser(const struct ref_format *format, struct used_ato
>> - else if (skip_prefix(arg, "trailers", &arg)) {
>> - skip_prefix(arg, ":", &arg);
>> - if (trailers_atom_parser(format, atom, *arg ? arg : NULL, err))
>> + else if (!strcmp(arg, "trailers")) {
>> + if (trailers_atom_parser(format, atom, NULL, err))
>> + return -1;
>> + } else if (skip_prefix(arg, "trailers:", &arg)) {
>> + if (trailers_atom_parser(format, atom, arg, err))
>> return -1;
>
> This looks better and easier to reason about (but I may be biased in
> thinking so).
>
>> diff --git a/t/t6300-for-each-ref.sh b/t/t6300-for-each-ref.sh
>> @@ -823,6 +823,14 @@ test_expect_success '%(trailers) rejects unknown trailers arguments' '
>> +test_expect_success 'if arguments, %(contents:trailers) shows error if semicolon is missing' '
>
> This still needs a s/semicolon/colon/ (mentioned in my previous review).Yup. Tweaked while queueing.
Thanks always for sharp eyes.