[PATCH 02/14] revert: Inline add_message_to_msg function
From: Ramkumar Ramachandra <hidden>
Date: 2016-06-15 22:51:33
Subsystem:
the rest · Maintainer:
Linus Torvalds
The add_message_to_msg function is poorly implemented, has an unclear API, and only one callsite. Replace the callsite with a cleaner implementation. Additionally, fix a bug introduced in 9509af6 (Make git-revert & git-cherry-pick a builtin, 2007-03-01) -- a NULL pointer was being incremented when "\n\n" was not found in "message". Helped-by: Junio C Hamano [off-list ref] Signed-off-by: Ramkumar Ramachandra <redacted> --- builtin/revert.c | 20 ++++++-------------- 1 files changed, 6 insertions(+), 14 deletions(-)
diff --git a/builtin/revert.c b/builtin/revert.c
index 1f27c63..19d604c 100644
--- a/builtin/revert.c
+++ b/builtin/revert.c@@ -185,19 +185,6 @@ static char *get_encoding(const char *message) return NULL; } -static void add_message_to_msg(struct strbuf *msgbuf, const char *message) -{ - const char *p = message; - while (*p && (*p != '\n' || p[1] != '\n')) - p++; - - if (!*p) - strbuf_addstr(msgbuf, sha1_to_hex(commit->object.sha1)); - - p += 2; - strbuf_addstr(msgbuf, p); -} - static void write_cherry_pick_head(void) { int fd;
@@ -471,11 +458,16 @@ static int do_pick_commit(void) } strbuf_addstr(&msgbuf, ".\n"); } else { + const char *p = strstr(msg.message, "\n\n"); + base = parent; base_label = msg.parent_label; next = commit; next_label = msg.label; - add_message_to_msg(&msgbuf, msg.message); + + p = p ? p + 2 : sha1_to_hex(commit->object.sha1); + strbuf_addstr(&msgbuf, p); + if (no_replay) { strbuf_addstr(&msgbuf, "(cherry picked from commit "); strbuf_addstr(&msgbuf, sha1_to_hex(commit->object.sha1));
--
1.7.5.GIT