mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
pretty: drop print_email_subject flag
With one exception, the print_email_subject flag is set if and only if
the commit format is email based:
- in make_cover_letter() we set it along with CMIT_FMT_EMAIL
explicitly
- in show_log(), we set it if cmit_fmt_is_mail() is true. That covers
format-patch as well as "git log --format=email" (or mboxrd).
The one exception is "rev-list --format=email", which somewhat
nonsensically prints the author and date as email headers, but no
subject, like:
$ git rev-list --format=email HEAD
commit 64fc4c2cdd4db2645eaabb47aa4bac820b03cdba
From: Jeff King <peff@peff.net>
Date: Tue, 19 Mar 2024 19:39:26 -0400
this is the subject
this is the body
It's doubtful that this is a useful format at all (the "commit" lines
replace the "From" lines that would make it work as an actual mbox).
But I think that printing the subject as a header (like this patch does)
is the least surprising thing to do.
So let's drop this field, making the code a little simpler and easier to
reason about. Note that we do need to set the "rev" field of the
pretty_print_context in rev-list, since that is used to check for
subject_prefix, etc. It's not possible to set those fields via rev-list,
so we'll always just print "Subject: ". But unless we pass in our
rev_info, fmt_output_email_subject() would segfault trying to figure it
out.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
69aff6200c
commit
d5a90d6319
@@ -1364,7 +1364,6 @@ static void make_cover_letter(struct rev_info *rev, int use_separate_file,
|
||||
pp.fmt = CMIT_FMT_EMAIL;
|
||||
pp.date_mode.type = DATE_RFC2822;
|
||||
pp.rev = rev;
|
||||
pp.print_email_subject = 1;
|
||||
pp.encode_email_headers = rev->encode_email_headers;
|
||||
pp_user_info(&pp, NULL, &sb, committer, encoding);
|
||||
prepare_cover_text(&pp, description_file, branch_name, &sb,
|
||||
|
||||
@@ -219,6 +219,7 @@ static void show_commit(struct commit *commit, void *data)
|
||||
ctx.fmt = revs->commit_format;
|
||||
ctx.output_encoding = get_log_output_encoding();
|
||||
ctx.color = revs->diffopt.use_color;
|
||||
ctx.rev = revs;
|
||||
pretty_print_commit(&ctx, commit, &buf);
|
||||
if (buf.len) {
|
||||
if (revs->commit_format != CMIT_FMT_ONELINE)
|
||||
|
||||
@@ -742,7 +742,6 @@ void show_log(struct rev_info *opt)
|
||||
log_write_email_headers(opt, commit, &extra_headers,
|
||||
&ctx.need_8bit_cte, 1);
|
||||
ctx.rev = opt;
|
||||
ctx.print_email_subject = 1;
|
||||
} else if (opt->commit_format != CMIT_FMT_USERFORMAT) {
|
||||
fputs(diff_get_color_opt(&opt->diffopt, DIFF_COMMIT), opt->diffopt.file);
|
||||
if (opt->commit_format != CMIT_FMT_ONELINE)
|
||||
|
||||
21
pretty.c
21
pretty.c
@@ -2091,19 +2091,14 @@ void pp_email_subject(struct pretty_print_context *pp,
|
||||
pp->preserve_subject ? "\n" : " ");
|
||||
|
||||
strbuf_grow(sb, title.len + 1024);
|
||||
if (pp->print_email_subject) {
|
||||
if (pp->rev)
|
||||
fmt_output_email_subject(sb, pp->rev);
|
||||
if (pp->encode_email_headers &&
|
||||
needs_rfc2047_encoding(title.buf, title.len))
|
||||
add_rfc2047(sb, title.buf, title.len,
|
||||
encoding, RFC2047_SUBJECT);
|
||||
else
|
||||
strbuf_add_wrapped_bytes(sb, title.buf, title.len,
|
||||
fmt_output_email_subject(sb, pp->rev);
|
||||
if (pp->encode_email_headers &&
|
||||
needs_rfc2047_encoding(title.buf, title.len))
|
||||
add_rfc2047(sb, title.buf, title.len,
|
||||
encoding, RFC2047_SUBJECT);
|
||||
else
|
||||
strbuf_add_wrapped_bytes(sb, title.buf, title.len,
|
||||
-last_line_length(sb), 1, max_length);
|
||||
} else {
|
||||
strbuf_addbuf(sb, &title);
|
||||
}
|
||||
strbuf_addch(sb, '\n');
|
||||
|
||||
if (need_8bit_cte == 0) {
|
||||
@@ -2319,7 +2314,7 @@ void pretty_print_commit(struct pretty_print_context *pp,
|
||||
}
|
||||
|
||||
pp_header(pp, encoding, commit, &msg, sb);
|
||||
if (pp->fmt != CMIT_FMT_ONELINE && !pp->print_email_subject) {
|
||||
if (pp->fmt != CMIT_FMT_ONELINE && !cmit_fmt_is_mail(pp->fmt)) {
|
||||
strbuf_addch(sb, '\n');
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user