1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-28 05:46:38 +02:00

sequencer.c: teach append_signoff to avoid adding a duplicate newline

Teach append_signoff to detect whether a blank line exists at the position
that the signed-off-by line will be added, and refrain from adding an
additional one if one already exists.  Or, add an additional line if one
is needed to make sure the new footer is separated from the message body
by a blank line.

Signed-off-by: Brandon Casey <bcasey@nvidia.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Brandon Casey 2013-02-12 02:33:42 -08:00 committed by Junio C Hamano
parent bab4d1097c
commit 33f2f9ab4e

View File

@ -1123,8 +1123,19 @@ void append_signoff(struct strbuf *msgbuf, int ignore_footer, unsigned flag)
else
has_footer = has_conforming_footer(msgbuf, &sob, ignore_footer);
if (!has_footer)
strbuf_splice(msgbuf, msgbuf->len - ignore_footer, 0, "\n", 1);
if (!has_footer) {
const char *append_newlines = NULL;
size_t len = msgbuf->len - ignore_footer;
if (len && msgbuf->buf[len - 1] != '\n')
append_newlines = "\n\n";
else if (len > 1 && msgbuf->buf[len - 2] != '\n')
append_newlines = "\n";
if (append_newlines)
strbuf_splice(msgbuf, msgbuf->len - ignore_footer, 0,
append_newlines, strlen(append_newlines));
}
if (has_footer != 3 && (!no_dup_sob || has_footer != 2))
strbuf_splice(msgbuf, msgbuf->len - ignore_footer, 0,