From: Linus Arver <linusa@xxxxxxxxxx> The fields here are not meant to be used by downstream callers, so put them behind an anonymous struct named as "__private_to_trailer_c__do_not_use" to warn against their use. Internally, use a "#define" to keep the code tidy. Helped-by: Junio C Hamano <gitster@xxxxxxxxx> Signed-off-by: Linus Arver <linusa@xxxxxxxxxx> --- trailer.c | 12 +++++++----- trailer.h | 6 ++++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/trailer.c b/trailer.c index f408f9b058d..dff3fafe865 100644 --- a/trailer.c +++ b/trailer.c @@ -1214,20 +1214,22 @@ void format_trailers_from_commit(struct strbuf *out, const char *msg, trailer_info_release(&info); } +#define private __private_to_trailer_c__do_not_use + void trailer_iterator_init(struct trailer_iterator *iter, const char *msg) { struct process_trailer_options opts = PROCESS_TRAILER_OPTIONS_INIT; strbuf_init(&iter->key, 0); strbuf_init(&iter->val, 0); opts.no_divider = 1; - trailer_info_get(&iter->info, msg, &opts); - iter->cur = 0; + trailer_info_get(&iter->private.info, msg, &opts); + iter->private.cur = 0; } int trailer_iterator_advance(struct trailer_iterator *iter) { - while (iter->cur < iter->info.trailer_nr) { - char *trailer = iter->info.trailers[iter->cur++]; + while (iter->private.cur < iter->private.info.trailer_nr) { + char *trailer = iter->private.info.trailers[iter->private.cur++]; int separator_pos = find_separator(trailer, separators); if (separator_pos < 1) @@ -1245,7 +1247,7 @@ int trailer_iterator_advance(struct trailer_iterator *iter) void trailer_iterator_release(struct trailer_iterator *iter) { - trailer_info_release(&iter->info); + trailer_info_release(&iter->private.info); strbuf_release(&iter->val); strbuf_release(&iter->key); } diff --git a/trailer.h b/trailer.h index 795d2fccfd9..db57e028650 100644 --- a/trailer.h +++ b/trailer.h @@ -119,8 +119,10 @@ struct trailer_iterator { struct strbuf val; /* private */ - struct trailer_info info; - size_t cur; + struct { + struct trailer_info info; + size_t cur; + } __private_to_trailer_c__do_not_use; }; /* -- gitgitgadget