From 5c99995df8ee3b02224f0e2e86a3d1e4bb2f7348 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 30 Aug 2015 21:14:40 +0200 Subject: trailer: support multiline title We currently ignore the first line passed to `git interpret-trailers`, when looking for the beginning of the trailers. Unfortunately this does not work well when a commit is created with a line break in the title, using for example the following command: git commit -m 'place of code: change we made' That's why instead of ignoring only the first line, it is better to ignore the first paragraph. Signed-off-by: Christian Couder Signed-off-by: Junio C Hamano --- trailer.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'trailer.c') diff --git a/trailer.c b/trailer.c index a92ba53fa5..5ec5f9ddc1 100644 --- 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)) { -- cgit v1.3-5-g9baa