summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 32a36b4)
raw | patch | inline | side by side (parent: 32a36b4)
author | Johan Herland <johan@herland.net> | |
Tue, 9 Nov 2010 21:49:44 +0000 (22:49 +0100) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Wed, 17 Nov 2010 21:21:29 +0000 (13:21 -0800) |
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>
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>
index 1674391d386fd9adf91226ab5ed4353736ce3fc3..09a93abca1244f7ce699f8630aaf69b5b15247ce 100644 (file)
--- a/notes.c
+++ b/notes.c
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);
diff --git a/t/t3301-notes.sh b/t/t3301-notes.sh
index 1d82f79ee07e8f9317bc23c49cdf941af36ce3ff..4bf4e52e6c94edb1506fbd2b2fd4bfbb67ecd98a 100755 (executable)
--- a/t/t3301-notes.sh
+++ b/t/t3301-notes.sh
Notes (other):
a fresh note
+$whitespace
another fresh note
EOF
Notes (other):
a fresh note
+$whitespace
another fresh note
+$whitespace
append 1
+$whitespace
append 2
EOF
index d571708ff27e3a64f93eacffb259fa3722e4ee79..704aee81ef5618048bba5209629a0dfde136fdb3 100755 (executable)
while [ $i -gt 0 ]; do
echo " commit #$i" &&
echo " first note for commit #$i" &&
+ echo " " &&
echo " second note for commit #$i" &&
i=$(($i-1));
done > expect &&
index 9f03ce699e8f4c3c654065deae675d1a7b259c74..9ed70dc7eb23c66493b4e6b6cf11869c8182b3a7 100755 (executable)
cat >expect <<EOF
an earlier note
+
a note
EOF
index a5c99d85074a3e04d699afd9b0990a89afe33f54..7cf8cd8a2fed2191b31082c92a95598a3e06513d 100755 (executable)
INPUT_END
+whitespace=" "
+
cat >expect <<EXPECT_END
fourth commit
pre-prefix of note for fourth commit
+$whitespace
prefix of note for fourth commit
+$whitespace
third note for fourth commit
third commit
prefix of note for third commit
+$whitespace
third note for third commit
second commit
third note for second commit