use xmalloc in git.c and help.c
[gitweb.git] / builtin-revert.c
index 2f2dc1bbaa564d07d38565d4a289157138c5c8b0..4ba0ee63ab4ca5e77aa350d1956f1b3312945f5d 100644 (file)
@@ -207,6 +207,7 @@ static int merge_recursive(const char *base_sha1,
                const char *next_sha1, const char *next_name)
 {
        char buffer[256];
+       const char *argv[6];
 
        sprintf(buffer, "GITHEAD_%s", head_sha1);
        setenv(buffer, head_name, 1);
@@ -219,10 +220,14 @@ static int merge_recursive(const char *base_sha1,
         * and $prev on top of us (when reverting), or the change between
         * $prev and $commit on top of us (when cherry-picking or replaying).
         */
-
-       return run_command_opt(RUN_COMMAND_NO_STDIN | RUN_GIT_CMD,
-                       "merge-recursive", base_sha1, "--",
-                       head_sha1, next_sha1, NULL);
+       argv[0] = "merge-recursive";
+       argv[1] = base_sha1;
+       argv[2] = "--";
+       argv[3] = head_sha1;
+       argv[4] = next_sha1;
+       argv[5] = NULL;
+
+       return run_command_v_opt(argv, RUN_COMMAND_NO_STDIN | RUN_GIT_CMD);
 }
 
 static int revert_or_cherry_pick(int argc, const char **argv)
@@ -230,8 +235,8 @@ static int revert_or_cherry_pick(int argc, const char **argv)
        unsigned char head[20];
        struct commit *base, *next;
        int i;
-       char *oneline, *encoding, *reencoded_message = NULL;
-       const char *message;
+       char *oneline, *reencoded_message = NULL;
+       const char *message, *encoding;
 
        git_config(git_default_config);
        me = action == REVERT ? "revert" : "cherry-pick";
@@ -289,13 +294,13 @@ static int revert_or_cherry_pick(int argc, const char **argv)
        oneline = get_oneline(message);
 
        if (action == REVERT) {
+               char *oneline_body = strchr(oneline, ' ');
+
                base = commit;
                next = commit->parents->item;
-               add_to_msg("Revert ");
-               add_to_msg(find_unique_abbrev(commit->object.sha1,
-                                       DEFAULT_ABBREV));
-               add_to_msg(oneline);
-               add_to_msg("\nThis reverts commit ");
+               add_to_msg("Revert \"");
+               add_to_msg(oneline_body + 1);
+               add_to_msg("\"\n\nThis reverts commit ");
                add_to_msg(sha1_to_hex(commit->object.sha1));
                add_to_msg(".\n");
        } else {