Signed-off-by: Christian Couder <[email protected]>
---
builtin/apply.c | 31 +++++++++++++++++--------------
1 file changed, 17 insertions(+), 14 deletions(-)
diff --git a/builtin/apply.c b/builtin/apply.c
index 6e347e2..6342b61 100644
--- a/builtin/apply.c
+++ b/builtin/apply.c
@@ -26,6 +26,7 @@ struct apply_state {
int prefix_length;
int newfd;
+ int apply;
int allow_overlap;
int apply_in_reverse;
int apply_with_reject;
@@ -70,7 +71,7 @@ struct apply_state {
static int p_value = 1;
static int p_value_known;
-static int apply = 1;
+
static const char * const apply_usage[] = {
N_("git apply [<options>] [<patch>...]"),
NULL
@@ -141,10 +142,11 @@ static void parse_ignorewhitespace_option(const char
*option)
die(_("unrecognized whitespace ignore option '%s'"), option);
}
-static void set_default_whitespace_mode(const char *whitespace_option)
+static void set_default_whitespace_mode(struct apply_state *state,
+ const char *whitespace_option)
{
if (!whitespace_option && !apply_default_whitespace)
- ws_error_action = (apply ? warn_on_ws_error : nowarn_ws_error);
+ ws_error_action = (state->apply ? warn_on_ws_error :
nowarn_ws_error);
}
/*
@@ -2075,7 +2077,7 @@ static int parse_chunk(struct apply_state *state, char
*buffer, unsigned long si
* without metadata change. A binary patch appears
* empty to us here.
*/
- if ((apply || state->check) &&
+ if ((state->apply || state->check) &&
(!patch->is_binary && !metadata_changes(patch)))
die(_("patch with only garbage at line %d"), linenr);
}
@@ -2934,7 +2936,7 @@ static int apply_one_fragment(struct apply_state *state,
* apply_data->apply_fragments->apply_one_fragment
*/
if (ws_error_action == die_on_ws_error)
- apply = 0;
+ state->apply = 0;
}
if (state->apply_verbosely && applied_pos != pos) {
@@ -4474,9 +4476,9 @@ static int apply_patch(struct apply_state *state,
die(_("unrecognized input"));
if (whitespace_error && (ws_error_action == die_on_ws_error))
- apply = 0;
+ state->apply = 0;
- state->update_index = state->check_index && apply;
+ state->update_index = state->check_index && state->apply;
if (state->update_index && state->newfd < 0)
state->newfd = hold_locked_index(&lock_file, 1);
@@ -4485,12 +4487,12 @@ static int apply_patch(struct apply_state *state,
die(_("unable to read index file"));
}
- if ((state->check || apply) &&
+ if ((state->check || state->apply) &&
check_patch_list(state, list) < 0 &&
!state->apply_with_reject)
exit(1);
- if (apply && write_out_results(state, list)) {
+ if (state->apply && write_out_results(state, list)) {
if (state->apply_with_reject)
exit(1);
/* with --3way, we still need to write the index out */
@@ -4657,6 +4659,7 @@ int cmd_apply(int argc, const char **argv, const char
*prefix_)
memset(&state, 0, sizeof(state));
state.prefix = prefix_;
state.prefix_length = state.prefix ? strlen(state.prefix) : 0;
+ state.apply = 1;
state.newfd = -1;
state.line_termination = '\n';
state.p_context = UINT_MAX;
@@ -4680,9 +4683,9 @@ int cmd_apply(int argc, const char **argv, const char
*prefix_)
state.check_index = 1;
}
if (state.apply_with_reject)
- apply = state.apply_verbosely = 1;
+ state.apply = state.apply_verbosely = 1;
if (!force_apply && (state.diffstat || state.numstat || state.summary
|| state.check || state.fake_ancestor))
- apply = 0;
+ state.apply = 0;
if (state.check_index && is_not_gitdir)
die(_("--index outside a repository"));
if (state.cached) {
@@ -4710,11 +4713,11 @@ int cmd_apply(int argc, const char **argv, const char
*prefix_)
if (fd < 0)
die_errno(_("can't open patch '%s'"), arg);
read_stdin = 0;
- set_default_whitespace_mode(whitespace_option);
+ set_default_whitespace_mode(&state, whitespace_option);
errs |= apply_patch(&state, fd, arg, options);
close(fd);
}
- set_default_whitespace_mode(whitespace_option);
+ set_default_whitespace_mode(&state, whitespace_option);
if (read_stdin)
errs |= apply_patch(&state, 0, "<stdin>", options);
if (whitespace_error) {
@@ -4732,7 +4735,7 @@ int cmd_apply(int argc, const char **argv, const char
*prefix_)
"%d lines add whitespace errors.",
whitespace_error),
whitespace_error);
- if (applied_after_fixing_ws && apply)
+ if (applied_after_fixing_ws && state.apply)
warning("%d line%s applied after"
" fixing whitespace errors.",
applied_after_fixing_ws,
--
2.8.0.rc1.49.gca61272
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html