]> git.ipfire.org Git - thirdparty/git.git/blobdiff - add-interactive.c
Merge branch 'gc/branch-recurse-submodules-fix'
[thirdparty/git.git] / add-interactive.c
index 6498ae196f1e1ed34001e2da87d64defa64c8507..72472103017920ac227641042f05383a40e5c673 100644 (file)
@@ -70,6 +70,8 @@ void init_add_i_state(struct add_i_state *s, struct repository *r)
                              &s->interactive_diff_algorithm);
 
        git_config_get_bool("interactive.singlekey", &s->use_single_key);
+       if (s->use_single_key)
+               setbuf(stdin, NULL);
 }
 
 void clear_add_i_state(struct add_i_state *s)
@@ -797,14 +799,14 @@ static int run_revert(struct add_i_state *s, const struct pathspec *ps,
        diffopt.flags.override_submodule_config = 1;
        diffopt.repo = s->r;
 
-       if (do_diff_cache(&oid, &diffopt))
+       if (do_diff_cache(&oid, &diffopt)) {
+               diff_free(&diffopt);
                res = -1;
-       else {
+       else {
                diffcore_std(&diffopt);
                diff_flush(&diffopt);
        }
        free(paths);
-       clear_pathspec(&diffopt.pathspec);
 
        if (!res && write_locked_index(s->r->index, &index_lock,
                                       COMMIT_LOCK) < 0)