trailer: support multiline title
[gitweb.git] / trailer.c
index a92ba53fa50e98f5c7b80bb1ba889702571872f1..5ec5f9ddc1c17047d2ce2df137a0e23009fdafd4 100644 (file)
--- a/trailer.c
+++ b/trailer.c
@@ -743,15 +743,22 @@ static int find_patch_start(struct strbuf **lines, int count)
  */
 static int find_trailer_start(struct strbuf **lines, int count)
 {
-       int start, only_spaces = 1;
+       int start, end_of_title, only_spaces = 1;
+
+       /* The first paragraph is the title and cannot be trailers */
+       for (start = 0; start < count; start++) {
+               if (lines[start]->buf[0] == comment_line_char)
+                       continue;
+               if (contains_only_spaces(lines[start]->buf))
+                       break;
+       }
+       end_of_title = start;
 
        /*
         * Get the start of the trailers by looking starting from the end
         * for a line with only spaces before lines with one separator.
-        * The first line must not be analyzed as the others as it
-        * should be either the message title or a blank line.
         */
-       for (start = count - 1; start >= 1; start--) {
+       for (start = count - 1; start >= end_of_title; start--) {
                if (lines[start]->buf[0] == comment_line_char)
                        continue;
                if (contains_only_spaces(lines[start]->buf)) {