From: Eric Sunshine Date: Fri, 21 Aug 2020 21:13:09 GMT Subject: Re: [PATCH v3 2/4] ref-filter: 'contents:trailers' show error if `:` is missing Message-ID: In-Reply-To: <659b9835dcd0b38ac3972eb19c08c3bf26dccc80.1598043976.git.gitgitgadget@gmail.com> On Fri, Aug 21, 2020 at 5:06 PM Hariom Verma via GitGitGadget 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 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. > Signed-off-by: Hariom Verma > --- > 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).