log-tree: show_log: make commentary block delimiting reusable
In patches generated by git-format-patch, the area below the "---" line following the commit message and before the actual 'diff' can be used for commentary which the patch author wants to convey to readers of the patch itself but not include in the commit message proper. By default, the commentary area is empty, however, the --notes option causes it to be populated with notes associated with the commit. In the future, other options may be added which also insert content into the commentary section. To accommodate this, factor out the logic which delimits commentary blocks from the commit message so that it can be re-used for upcoming optional inserted content. Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
3b026417ea
commit
3fcc7a23a0
23
log-tree.c
23
log-tree.c
@ -541,6 +541,16 @@ static int show_mergetag(struct rev_info *opt, struct commit *commit)
|
|||||||
return for_each_mergetag(show_one_mergetag, commit, opt);
|
return for_each_mergetag(show_one_mergetag, commit, opt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void next_commentary_block(struct rev_info *opt, struct strbuf *sb)
|
||||||
|
{
|
||||||
|
const char *x = opt->shown_dashes ? "\n" : "---\n";
|
||||||
|
if (sb)
|
||||||
|
strbuf_addstr(sb, x);
|
||||||
|
else
|
||||||
|
fputs(x, opt->diffopt.file);
|
||||||
|
opt->shown_dashes = 1;
|
||||||
|
}
|
||||||
|
|
||||||
void show_log(struct rev_info *opt)
|
void show_log(struct rev_info *opt)
|
||||||
{
|
{
|
||||||
struct strbuf msgbuf = STRBUF_INIT;
|
struct strbuf msgbuf = STRBUF_INIT;
|
||||||
@ -698,10 +708,8 @@ void show_log(struct rev_info *opt)
|
|||||||
|
|
||||||
if ((ctx.fmt != CMIT_FMT_USERFORMAT) &&
|
if ((ctx.fmt != CMIT_FMT_USERFORMAT) &&
|
||||||
ctx.notes_message && *ctx.notes_message) {
|
ctx.notes_message && *ctx.notes_message) {
|
||||||
if (cmit_fmt_is_mail(ctx.fmt)) {
|
if (cmit_fmt_is_mail(ctx.fmt))
|
||||||
strbuf_addstr(&msgbuf, "---\n");
|
next_commentary_block(opt, &msgbuf);
|
||||||
opt->shown_dashes = 1;
|
|
||||||
}
|
|
||||||
strbuf_addstr(&msgbuf, ctx.notes_message);
|
strbuf_addstr(&msgbuf, ctx.notes_message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -765,9 +773,10 @@ int log_tree_diff_flush(struct rev_info *opt)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* We may have shown three-dashes line early
|
* We may have shown three-dashes line early
|
||||||
* between notes and the log message, in which
|
* between generated commentary (notes, etc.)
|
||||||
* case we only want a blank line after the
|
* and the log message, in which case we only
|
||||||
* notes without (an extra) three-dashes line.
|
* want a blank line after the commentary
|
||||||
|
* without (an extra) three-dashes line.
|
||||||
* Otherwise, we show the three-dashes line if
|
* Otherwise, we show the three-dashes line if
|
||||||
* we are showing the patch with diffstat, but
|
* we are showing the patch with diffstat, but
|
||||||
* in that case, there is no extra blank line
|
* in that case, there is no extra blank line
|
||||||
|
Loading…
Reference in New Issue
Block a user