diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2011-12-15 20:47:22 +0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-12-15 10:46:42 -0800 |
commit | 13f8b72d8c8e24215a3dd7771592b30083f1c740 (patch) | |
tree | 090da017d258dc9d29af8c270d287f61d44b150a /notes-merge.c | |
parent | 6b3c4c05475d206fafd650d8d27c82a8b051ac30 (diff) | |
download | git-13f8b72d8c8e24215a3dd7771592b30083f1c740.tar.gz |
Convert commit_tree() to take strbuf as message
There wan't a way for commit_tree() to notice if the message the caller
prepared contained a NUL byte, as it did not take the length of the
message as a parameter. Use a pointer to a strbuf instead, so that we can
either choose to allow low-level plumbing commands to make commits that
contain NUL byte in its message, or forbid NUL everywhere by adding the
check in commit_tree(), in later patches.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'notes-merge.c')
-rw-r--r-- | notes-merge.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/notes-merge.c b/notes-merge.c index ce10aacf29..b5a36ac158 100644 --- a/notes-merge.c +++ b/notes-merge.c @@ -530,7 +530,7 @@ static int merge_from_diffs(struct notes_merge_options *o, } void create_notes_commit(struct notes_tree *t, struct commit_list *parents, - const char *msg, unsigned char *result_sha1) + const struct strbuf *msg, unsigned char *result_sha1) { unsigned char tree_sha1[20]; @@ -668,7 +668,7 @@ int notes_merge(struct notes_merge_options *o, struct commit_list *parents = NULL; commit_list_insert(remote, &parents); /* LIFO order */ commit_list_insert(local, &parents); - create_notes_commit(local_tree, parents, o->commit_msg.buf, + create_notes_commit(local_tree, parents, &o->commit_msg, result_sha1); } @@ -695,7 +695,8 @@ int notes_merge_commit(struct notes_merge_options *o, struct dir_struct dir; char *path = xstrdup(git_path(NOTES_MERGE_WORKTREE "/")); int path_len = strlen(path), i; - const char *msg = strstr(partial_commit->buffer, "\n\n"); + char *msg = strstr(partial_commit->buffer, "\n\n"); + struct strbuf sb_msg = STRBUF_INIT; if (o->verbosity >= 3) printf("Committing notes in notes merge worktree at %.*s\n", @@ -733,7 +734,8 @@ int notes_merge_commit(struct notes_merge_options *o, sha1_to_hex(obj_sha1), sha1_to_hex(blob_sha1)); } - create_notes_commit(partial_tree, partial_commit->parents, msg, + strbuf_attach(&sb_msg, msg, strlen(msg), strlen(msg) + 1); + create_notes_commit(partial_tree, partial_commit->parents, &sb_msg, result_sha1); if (o->verbosity >= 4) printf("Finalized notes merge commit: %s\n", |