summaryrefslogtreecommitdiff
path: root/notes.c
diff options
context:
space:
mode:
authorJohan Herland <johan@herland.net>2010-11-09 22:49:44 +0100
committerJunio C Hamano <gitster@pobox.com>2010-11-17 13:21:29 -0800
commitd4990c4b2f5f7066853fea4df775b3f506c79431 (patch)
treeaf48a3a32d0a8450f8ad53528a10f20e4bdfaaa5 /notes.c
parent32a36b4d6f3207f5c01e928085b13af87bf223a1 (diff)
downloadgit-d4990c4b2f5f7066853fea4df775b3f506c79431.tar.gz
notes.c: Use two newlines (instead of one) when concatenating notes
When using combine_notes_concatenate() to concatenate notes, it currently ensures exactly one newline character between the given notes. However, when using builtin/notes.c:create_note() to concatenate notes (e.g. by 'git notes append'), it adds a newline character to the trailing newline of the preceding notes object, thus resulting in _two_ newlines (aka. a blank line) separating contents of the two notes. This patch brings combine_notes_concatenate() into consistency with builtin/notes.c:create_note(), by ensuring exactly _two_ newline characters between concatenated notes. The patch also changes a few notes-related selftests accordingly. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'notes.c')
-rw-r--r--notes.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/notes.c b/notes.c
index 1674391d38..09a93abca1 100644
--- a/notes.c
+++ b/notes.c
@@ -812,16 +812,17 @@ int combine_notes_concatenate(unsigned char *cur_sha1,
return 0;
}
- /* we will separate the notes by a newline anyway */
+ /* we will separate the notes by two newlines anyway */
if (cur_msg[cur_len - 1] == '\n')
cur_len--;
/* concatenate cur_msg and new_msg into buf */
- buf_len = cur_len + 1 + new_len;
+ buf_len = cur_len + 2 + new_len;
buf = (char *) xmalloc(buf_len);
memcpy(buf, cur_msg, cur_len);
buf[cur_len] = '\n';
- memcpy(buf + cur_len + 1, new_msg, new_len);
+ buf[cur_len + 1] = '\n';
+ memcpy(buf + cur_len + 2, new_msg, new_len);
free(cur_msg);
free(new_msg);