From: phillip.wood123@gmail.com Date: Mon, 02 Mar 2026 14:56:15 GMT Subject: Re: [PATCH v7 2/5] trailer: move process_trailers to trailer.h Message-ID: In-Reply-To: <20260224070552.148591-3-me@linux.beauty> On 24/02/2026 07:05, Li Chen wrote: > Move process_trailers() from builtin/interpret-trailers.c into trailer.c > and expose it via trailer.h. > > This lets other call sites reuse the same trailer rewriting logic. This looks good, thanks Phillip > Signed-off-by: Li Chen > --- > v7: > Rename the input parameter from sb to input. > > builtin/interpret-trailers.c | 36 ------------------------------------ > trailer.c | 36 ++++++++++++++++++++++++++++++++++++ > trailer.h | 3 +++ > 3 files changed, 39 insertions(+), 36 deletions(-) > > diff --git a/builtin/interpret-trailers.c b/builtin/interpret-trailers.c > index 69f9d67ec0..1354109e0f 100644 > --- a/builtin/interpret-trailers.c > +++ b/builtin/interpret-trailers.c > @@ -136,42 +136,6 @@ static void read_input_file(struct strbuf *sb, const char *file) > strbuf_complete_line(sb); > } > > -static void process_trailers(const struct process_trailer_options *opts, > - struct list_head *new_trailer_head, > - struct strbuf *input, struct strbuf *out) > -{ > - LIST_HEAD(head); > - struct trailer_block *trailer_block; > - > - trailer_block = parse_trailers(opts, input->buf, &head); > - > - /* Print the lines before the trailer block */ > - if (!opts->only_trailers) > - strbuf_add(out, input->buf, trailer_block_start(trailer_block)); > - > - if (!opts->only_trailers && !blank_line_before_trailer_block(trailer_block)) > - strbuf_addch(out, '\n'); > - > - if (!opts->only_input) { > - LIST_HEAD(config_head); > - LIST_HEAD(arg_head); > - parse_trailers_from_config(&config_head); > - parse_trailers_from_command_line_args(&arg_head, new_trailer_head); > - list_splice(&config_head, &arg_head); > - process_trailers_lists(&head, &arg_head); > - } > - > - /* Print trailer block. */ > - format_trailers(opts, &head, out); > - free_trailers(&head); > - > - /* Print the lines after the trailer block as is. */ > - if (!opts->only_trailers) > - strbuf_add(out, input->buf + trailer_block_end(trailer_block), > - input->len - trailer_block_end(trailer_block)); > - trailer_block_release(trailer_block); > -} > - > static void interpret_trailers(const struct process_trailer_options *opts, > struct list_head *new_trailer_head, > const char *file) > diff --git a/trailer.c b/trailer.c > index 911a81ed99..0c9200506d 100644 > --- a/trailer.c > +++ b/trailer.c > @@ -1235,3 +1235,39 @@ int amend_file_with_trailers(const char *path, const struct strvec *trailer_args > strvec_pushv(&run_trailer.args, trailer_args->v); > return run_command(&run_trailer); > } > + > +void process_trailers(const struct process_trailer_options *opts, > + struct list_head *new_trailer_head, > + struct strbuf *input, struct strbuf *out) > +{ > + LIST_HEAD(head); > + struct trailer_block *trailer_block; > + > + trailer_block = parse_trailers(opts, input->buf, &head); > + > + /* Print the lines before the trailer block */ > + if (!opts->only_trailers) > + strbuf_add(out, input->buf, trailer_block_start(trailer_block)); > + > + if (!opts->only_trailers && !blank_line_before_trailer_block(trailer_block)) > + strbuf_addch(out, '\n'); > + > + if (!opts->only_input) { > + LIST_HEAD(config_head); > + LIST_HEAD(arg_head); > + parse_trailers_from_config(&config_head); > + parse_trailers_from_command_line_args(&arg_head, new_trailer_head); > + list_splice(&config_head, &arg_head); > + process_trailers_lists(&head, &arg_head); > + } > + > + /* Print trailer block. */ > + format_trailers(opts, &head, out); > + free_trailers(&head); > + > + /* Print the lines after the trailer block as is. */ > + if (!opts->only_trailers) > + strbuf_add(out, input->buf + trailer_block_end(trailer_block), > + input->len - trailer_block_end(trailer_block)); > + trailer_block_release(trailer_block); > +} > diff --git a/trailer.h b/trailer.h > index 4740549586..531fa1a13f 100644 > --- a/trailer.h > +++ b/trailer.h > @@ -202,4 +202,7 @@ void trailer_iterator_release(struct trailer_iterator *iter); > */ > int amend_file_with_trailers(const char *path, const struct strvec *trailer_args); > > +void process_trailers(const struct process_trailer_options *opts, > + struct list_head *new_trailer_head, > + struct strbuf *input, struct strbuf *out); > #endif /* TRAILER_H */