shortlog: extract shortlog_finish_setup()

Extract a function which finishes setting up the shortlog struct for
use. The caller in `make_cover_letter()` does not care about trailer
sorting, so it isn't strictly necessary to add a call there in this
patch.

But the next patch will add additional functionality to the new
`shortlog_finish_setup()` function, which the caller in
`make_cover_letter()` will care about.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Taylor Blau 2022-10-24 14:55:41 -04:00 committed by Junio C Hamano
parent 3dc95e09e1
commit 10538e2a62
3 changed files with 8 additions and 1 deletions

View File

@ -1334,6 +1334,7 @@ static void make_cover_letter(struct rev_info *rev, int use_separate_file,
log.in2 = 4; log.in2 = 4;
log.file = rev->diffopt.file; log.file = rev->diffopt.file;
log.groups = SHORTLOG_GROUP_AUTHOR; log.groups = SHORTLOG_GROUP_AUTHOR;
shortlog_finish_setup(&log);
for (i = 0; i < nr; i++) for (i = 0; i < nr; i++)
shortlog_add_commit(&log, list[i]); shortlog_add_commit(&log, list[i]);

View File

@ -381,6 +381,11 @@ void shortlog_init(struct shortlog *log)
log->format.strdup_strings = 1; log->format.strdup_strings = 1;
} }
void shortlog_finish_setup(struct shortlog *log)
{
string_list_sort(&log->trailers);
}
int cmd_shortlog(int argc, const char **argv, const char *prefix) int cmd_shortlog(int argc, const char **argv, const char *prefix)
{ {
struct shortlog log = { STRING_LIST_INIT_NODUP }; struct shortlog log = { STRING_LIST_INIT_NODUP };
@ -450,7 +455,7 @@ parse_done:
if (!log.groups) if (!log.groups)
log.groups = SHORTLOG_GROUP_AUTHOR; log.groups = SHORTLOG_GROUP_AUTHOR;
string_list_sort(&log.trailers); shortlog_finish_setup(&log);
/* assume HEAD if from a tty */ /* assume HEAD if from a tty */
if (!nongit && !rev.pending.nr && isatty(0)) if (!nongit && !rev.pending.nr && isatty(0))

View File

@ -33,6 +33,7 @@ struct shortlog {
}; };
void shortlog_init(struct shortlog *log); void shortlog_init(struct shortlog *log);
void shortlog_finish_setup(struct shortlog *log);
void shortlog_add_commit(struct shortlog *log, struct commit *commit); void shortlog_add_commit(struct shortlog *log, struct commit *commit);