summaryrefslogtreecommitdiff
path: root/builtin/apply.c
diff options
context:
space:
mode:
Diffstat (limited to 'builtin/apply.c')
-rw-r--r--builtin/apply.c32
1 files changed, 22 insertions, 10 deletions
diff --git a/builtin/apply.c b/builtin/apply.c
index ae068e7..52b5d3e 100644
--- a/builtin/apply.c
+++ b/builtin/apply.c
@@ -4522,7 +4522,25 @@ static int option_parse_directory(const struct option *opt,
return 0;
}
-int cmd_apply(int argc, const char **argv, const char *prefix_)
+static void init_apply_state(struct apply_state *state, const char *prefix)
+{
+ memset(state, 0, sizeof(*state));
+ state->prefix = prefix;
+ state->prefix_length = state->prefix ? strlen(state->prefix) : 0;
+
+ git_apply_config();
+ if (apply_default_whitespace)
+ parse_whitespace_option(apply_default_whitespace);
+ if (apply_default_ignorewhitespace)
+ parse_ignorewhitespace_option(apply_default_ignorewhitespace);
+}
+
+static void clear_apply_state(struct apply_state *state)
+{
+ /* empty for now */
+}
+
+int cmd_apply(int argc, const char **argv, const char *prefix)
{
int i;
int errs = 0;
@@ -4603,15 +4621,7 @@ int cmd_apply(int argc, const char **argv, const char *prefix_)
OPT_END()
};
- memset(&state, 0, sizeof(state));
- state.prefix = prefix_;
- state.prefix_length = state.prefix ? strlen(state.prefix) : 0;
-
- git_apply_config();
- if (apply_default_whitespace)
- parse_whitespace_option(apply_default_whitespace);
- if (apply_default_ignorewhitespace)
- parse_ignorewhitespace_option(apply_default_ignorewhitespace);
+ init_apply_state(&state, prefix);
argc = parse_options(argc, argv, state.prefix, builtin_apply_options,
apply_usage, 0);
@@ -4695,5 +4705,7 @@ int cmd_apply(int argc, const char **argv, const char *prefix_)
die(_("Unable to write new index file"));
}
+ clear_apply_state(&state);
+
return !!errs;
}