aboutsummaryrefslogtreecommitdiff
path: root/builtin/apply.c
diff options
context:
space:
mode:
authorChristian Couder <christian.couder@gmail.com>2016-05-24 10:10:48 +0200
committerJunio C Hamano <gitster@pobox.com>2016-06-01 10:10:16 -0700
commit22a7233584b1983e2a7337d3b0f2c13f0cc34651 (patch)
tree3c420e709b4a65a27f11f90bc91997bda1ea0d7e /builtin/apply.c
parent1da16e1ed85c5be6eb243ca91225757b25088623 (diff)
downloadgit-22a7233584b1983e2a7337d3b0f2c13f0cc34651.tar.gz
git-22a7233584b1983e2a7337d3b0f2c13f0cc34651.tar.xz
builtin/apply: move 'check' global into 'struct apply_state'
To libify the apply functionality the 'check' variable should not be static and global to the file. Let's move it into 'struct apply_state'. Reviewed-by: Stefan Beller <sbeller@google.com> Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/apply.c')
-rw-r--r--builtin/apply.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/builtin/apply.c b/builtin/apply.c
index 6c3689890..55a5541fd 100644
--- a/builtin/apply.c
+++ b/builtin/apply.c
@@ -25,13 +25,14 @@ struct apply_state {
const char *prefix;
int prefix_length;
+ /* These control what gets looked at and modified */
+ int check; /* preimage must match working tree, don't actually apply */
+
/* These boolean parameters control how the apply is done */
int unidiff_zero;
};
/*
- * --check turns on checking that the working tree matches the
- * files that are being modified, but doesn't apply the patch
* --stat does just a diffstat, and doesn't actually apply
* --numstat does numeric diffstat, and doesn't actually apply
* --index-info shows the old and new index info for paths if available.
@@ -48,7 +49,6 @@ static int cached;
static int diffstat;
static int numstat;
static int summary;
-static int check;
static int apply = 1;
static int apply_in_reverse;
static int apply_with_reject;
@@ -2053,7 +2053,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 || check) &&
+ if ((apply || state->check) &&
(!patch->is_binary && !metadata_changes(patch)))
die(_("patch with only garbage at line %d"), state_linenr);
}
@@ -4440,7 +4440,7 @@ static int apply_patch(struct apply_state *state,
die(_("unable to read index file"));
}
- if ((check || apply) &&
+ if ((state->check || apply) &&
check_patch_list(state, list) < 0 &&
!apply_with_reject)
exit(1);
@@ -4579,7 +4579,7 @@ int cmd_apply(int argc, const char **argv, const char *prefix)
N_("show number of added and deleted lines in decimal notation")),
OPT_BOOL(0, "summary", &summary,
N_("instead of applying the patch, output a summary for the input")),
- OPT_BOOL(0, "check", &check,
+ OPT_BOOL(0, "check", &state.check,
N_("instead of applying the patch, see if the patch is applicable")),
OPT_BOOL(0, "index", &check_index,
N_("make sure the patch is applicable to the current index")),
@@ -4644,7 +4644,7 @@ int cmd_apply(int argc, const char **argv, const char *prefix)
}
if (apply_with_reject)
apply = apply_verbosely = 1;
- if (!force_apply && (diffstat || numstat || summary || check || fake_ancestor))
+ if (!force_apply && (diffstat || numstat || summary || state.check || fake_ancestor))
apply = 0;
if (check_index && is_not_gitdir)
die(_("--index outside a repository"));