format_trailers(): use strbuf instead of FILE

This is another preparatory refactor to unify the trailer formatters.

Make format_trailers() also write to a strbuf, to align with
format_trailers_from_commit() which also does the same. Doing this makes
format_trailers() behave similar to format_trailer_info() (which will
soon help us replace one with the other).

Signed-off-by: Linus Arver <linusa@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Linus Arver
2024-03-01 00:14:44 +00:00
committed by Junio C Hamano
parent 9aa1b2bc89
commit bf35e0a018
3 changed files with 14 additions and 8 deletions

View File

@ -140,6 +140,7 @@ static void interpret_trailers(const struct process_trailer_options *opts,
{
LIST_HEAD(head);
struct strbuf sb = STRBUF_INIT;
struct strbuf trailer_block = STRBUF_INIT;
struct trailer_info info;
FILE *outfile = stdout;
@ -169,8 +170,11 @@ static void interpret_trailers(const struct process_trailer_options *opts,
process_trailers_lists(&head, &arg_head);
}
format_trailers(opts, &head, outfile);
/* Print trailer block. */
format_trailers(opts, &head, &trailer_block);
free_trailers(&head);
fwrite(trailer_block.buf, 1, trailer_block.len, outfile);
strbuf_release(&trailer_block);
/* Print the lines after the trailers as is */
if (!opts->only_trailers)