]> git.ipfire.org Git - thirdparty/git.git/commitdiff
format-patch: wrap generate_commit_list_cover()
authorMirko Faina <mroik@delayed.space>
Mon, 23 Mar 2026 16:57:33 +0000 (17:57 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 23 Mar 2026 20:06:59 +0000 (13:06 -0700)
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>
builtin/log.c

index 47126f906408b76c272f561fa7c771ada6148aac..d1765ce4ad71c1d451e79d0706d0314aab6fe745 100644 (file)
@@ -40,6 +40,7 @@
 #include "progress.h"
 #include "commit-slab.h"
 #include "advice.h"
+#include "utf8.h"
 
 #include "commit-reach.h"
 #include "range-diff.h"
@@ -1364,6 +1365,7 @@ static void generate_commit_list_cover(FILE *cover_file, const char *format,
                                       struct commit **list, int n)
 {
        struct strbuf commit_line = STRBUF_INIT;
+       struct strbuf wrapped_line = STRBUF_INIT;
        struct pretty_print_context ctx = {0};
        struct rev_info rev = REV_INFO_INIT;
 
@@ -1373,12 +1375,16 @@ static void generate_commit_list_cover(FILE *cover_file, const char *format,
                rev.nr = i;
                repo_format_commit_message(the_repository, list[n - i], format,
                                &commit_line, &ctx);
-               fprintf(cover_file, "%s\n", commit_line.buf);
+               strbuf_add_wrapped_text(&wrapped_line, commit_line.buf, 0, 0,
+                                       MAIL_DEFAULT_WRAP);
+               fprintf(cover_file, "%s\n", wrapped_line.buf);
                strbuf_reset(&commit_line);
+               strbuf_reset(&wrapped_line);
        }
        fprintf(cover_file, "\n");
 
        strbuf_release(&commit_line);
+       strbuf_release(&wrapped_line);
 }
 
 static void make_cover_letter(struct rev_info *rev, int use_separate_file,