зеркало из https://github.com/microsoft/git.git
format_trailers_from_commit(): indirectly call trailer_info_get()
This is another preparatory refactor to unify the trailer formatters. For background, note that the "trailers" string array is the `char **trailers` member in `struct trailer_info` and that the trailer_item objects are the elements of the `struct list_head *head` linked list. Currently trailer_info_get() only populates `char **trailers`. And parse_trailers() first calls trailer_info_get() so that it can use the `char **trailers` to populate a list of `struct trailer_item` objects Instead of calling trailer_info_get() directly from format_trailers_from_commit(), make it call parse_trailers() instead because parse_trailers() already calls trailer_info_get(). This change is a NOP because format_trailer_info() (which format_trailers_from_commit() wraps around) only looks at the "trailers" string array, not the trailer_item objects which parse_trailers() populates. For now we do need to create a dummy LIST_HEAD(trailer_objects); because parse_trailers() expects it in its signature. In a future patch, we'll change format_trailer_info() to use the parsed trailer_item objects (trailer_objects) instead of the `char **trailers` array. Signed-off-by: Linus Arver <linusa@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
2c948a78fd
Коммит
35ca4411a0
|
@ -1140,9 +1140,11 @@ void format_trailers_from_commit(const struct process_trailer_options *opts,
|
||||||
const char *msg,
|
const char *msg,
|
||||||
struct strbuf *out)
|
struct strbuf *out)
|
||||||
{
|
{
|
||||||
|
LIST_HEAD(trailer_objects);
|
||||||
struct trailer_info info;
|
struct trailer_info info;
|
||||||
|
|
||||||
trailer_info_get(opts, msg, &info);
|
parse_trailers(opts, &info, msg, &trailer_objects);
|
||||||
|
|
||||||
/* If we want the whole block untouched, we can take the fast path. */
|
/* If we want the whole block untouched, we can take the fast path. */
|
||||||
if (!opts->only_trailers && !opts->unfold && !opts->filter &&
|
if (!opts->only_trailers && !opts->unfold && !opts->filter &&
|
||||||
!opts->separator && !opts->key_only && !opts->value_only &&
|
!opts->separator && !opts->key_only && !opts->value_only &&
|
||||||
|
@ -1152,6 +1154,7 @@ void format_trailers_from_commit(const struct process_trailer_options *opts,
|
||||||
} else
|
} else
|
||||||
format_trailer_info(opts, &info, out);
|
format_trailer_info(opts, &info, out);
|
||||||
|
|
||||||
|
free_trailers(&trailer_objects);
|
||||||
trailer_info_release(&info);
|
trailer_info_release(&info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче