builtin/apply: move check_apply_state() to apply.c
authorChristian Couder <christian.couder@gmail.com>
Mon, 8 Aug 2016 21:03:10 +0000 (23:03 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 11 Aug 2016 19:41:47 +0000 (12:41 -0700)
To libify `git apply` functionality we must make check_apply_state()
usable outside "builtin/apply.c".

Let's do that by moving it into "apply.c".

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
apply.c
apply.h
builtin/apply.c
diff --git a/apply.c b/apply.c
index 6e0e9928396b0f86ed52d411aa455ead3a390621..2eac3e37a91402e0b26689fc5bee117f9f4fce23 100644 (file)
--- a/apply.c
+++ b/apply.c
@@ -93,3 +93,35 @@ void clear_apply_state(struct apply_state *state)
 
        /* &state->fn_table is cleared at the end of apply_patch() */
 }
+
+int check_apply_state(struct apply_state *state, int force_apply)
+{
+       int is_not_gitdir = !startup_info->have_repository;
+
+       if (state->apply_with_reject && state->threeway)
+               return error("--reject and --3way cannot be used together.");
+       if (state->cached && state->threeway)
+               return error("--cached and --3way cannot be used together.");
+       if (state->threeway) {
+               if (is_not_gitdir)
+                       return error(_("--3way outside a repository"));
+               state->check_index = 1;
+       }
+       if (state->apply_with_reject)
+               state->apply = state->apply_verbosely = 1;
+       if (!force_apply && (state->diffstat || state->numstat || state->summary || state->check || state->fake_ancestor))
+               state->apply = 0;
+       if (state->check_index && is_not_gitdir)
+               return error(_("--index outside a repository"));
+       if (state->cached) {
+               if (is_not_gitdir)
+                       return error(_("--cached outside a repository"));
+               state->check_index = 1;
+       }
+       if (state->check_index)
+               state->unsafe_paths = 0;
+       if (!state->lock_file)
+               return error("BUG: state->lock_file should not be NULL");
+
+       return 0;
+}
diff --git a/apply.h b/apply.h
index e18a18a96438bff6990e574cb9c31fc6a5a42d4e..53f09b5a45afc1109d1f13f1393c4af9f9c15bfe 100644 (file)
--- a/apply.h
+++ b/apply.h
@@ -106,5 +106,6 @@ extern int init_apply_state(struct apply_state *state,
                            const char *prefix,
                            struct lock_file *lock_file);
 extern void clear_apply_state(struct apply_state *state);
+extern int check_apply_state(struct apply_state *state, int force_apply);
 
 #endif
index bb89e07a1a87e16174c15c36cd25a3a35793ec98..075ada47d457794442394c39a3deb4ee2678fcb4 100644 (file)
@@ -4551,38 +4551,6 @@ static int option_parse_directory(const struct option *opt,
        return 0;
 }
 
-static int check_apply_state(struct apply_state *state, int force_apply)
-{
-       int is_not_gitdir = !startup_info->have_repository;
-
-       if (state->apply_with_reject && state->threeway)
-               return error("--reject and --3way cannot be used together.");
-       if (state->cached && state->threeway)
-               return error("--cached and --3way cannot be used together.");
-       if (state->threeway) {
-               if (is_not_gitdir)
-                       return error(_("--3way outside a repository"));
-               state->check_index = 1;
-       }
-       if (state->apply_with_reject)
-               state->apply = state->apply_verbosely = 1;
-       if (!force_apply && (state->diffstat || state->numstat || state->summary || state->check || state->fake_ancestor))
-               state->apply = 0;
-       if (state->check_index && is_not_gitdir)
-               return error(_("--index outside a repository"));
-       if (state->cached) {
-               if (is_not_gitdir)
-                       return error(_("--cached outside a repository"));
-               state->check_index = 1;
-       }
-       if (state->check_index)
-               state->unsafe_paths = 0;
-       if (!state->lock_file)
-               return error("BUG: state->lock_file should not be NULL");
-
-       return 0;
-}
-
 static int apply_all_patches(struct apply_state *state,
                             int argc,
                             const char **argv,