format-patch: wrap generate_commit_list_cover()

While most conventions should not allow for the text lines in commit messages to get too long, when they do it could make emails harder to read. Teach generate_commit_list_cover() to wrap its commit lines if they are too long. Signed-off-by: Mirko Faina <mroik@delayed.space> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Mirko Faina committed Mar 23, 2026 at 17:57 UTC 617db87921e835f02ac132e86d0f7edc0d72915e
1 file changed +7 -1
builtin/log.c
+7 -1
@@ -40,6 +40,7 @@
40 #include "progress.h"
41 #include "commit-slab.h"
42 #include "advice.h"
43 +#include "utf8.h"
44
45 #include "commit-reach.h"
46 #include "range-diff.h"
@@ -1364,6 +1365,7 @@ static void generate_commit_list_cover(FILE *cover_file, const char *format,
1365 struct commit **list, int n)
1366 {
1367 struct strbuf commit_line = STRBUF_INIT;
1368 + struct strbuf wrapped_line = STRBUF_INIT;
1369 struct pretty_print_context ctx = {0};
1370 struct rev_info rev = REV_INFO_INIT;
1371
@@ -1373,12 +1375,16 @@ static void generate_commit_list_cover(FILE *cover_file, const char *format,
1375 rev.nr = i;
1376 repo_format_commit_message(the_repository, list[n - i], format,
1377 &commit_line, &ctx);
1376 - fprintf(cover_file, "%s\n", commit_line.buf);
1378 + strbuf_add_wrapped_text(&wrapped_line, commit_line.buf, 0, 0,
1379 + MAIL_DEFAULT_WRAP);
1380 + fprintf(cover_file, "%s\n", wrapped_line.buf);
1381 strbuf_reset(&commit_line);
1382 + strbuf_reset(&wrapped_line);
1383 }
1384 fprintf(cover_file, "\n");
1385
1386 strbuf_release(&commit_line);
1387 + strbuf_release(&wrapped_line);
1388 }
1389
1390 static void make_cover_letter(struct rev_info *rev, int use_separate_file,