ref-filter.c: parse trailers arguments with %(contents) atom
authorTaylor Blau <me@ttaylorr.com>
Mon, 2 Oct 2017 05:25:24 +0000 (22:25 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 2 Oct 2017 12:15:30 +0000 (21:15 +0900)
commit7a5edbdb748f58c0ff3f2a459596ad6ddfda0640
tree644b598f8b71e6e0c452876b23d8e8cf6a4b6ac4
parent67a20a0010224255bbd5bb9fa4f95595c3e1ba7c
ref-filter.c: parse trailers arguments with %(contents) atom

The %(contents) atom takes a contents "field" as its argument. Since
"trailers" is one of those fields, extend contents_atom_parser to parse
"trailers"'s arguments when used through "%(contents)", like:

  %(contents:trailers:unfold,only)

A caveat: trailers_atom_parser expects NULL when no arguments are given
(see: `parse_ref_filter_atom`). This is because string_list_split (given
a maxsplit of -1) returns a 1-ary string_list* containing the given
string if the delimiter could not be found using `strchr`.

To simulate this behavior without teaching trailers_atom_parser to
accept strings with length zero, conditionally pass NULL to
trailers_atom_parser if the arguments portion of the argument to
%(contents) is empty.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
ref-filter.c
t/t6300-for-each-ref.sh