From 881529c84656e7ff41379c0684df0ff9a796d444 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Scharfe?= Date: Wed, 9 Aug 2017 17:54:46 +0200 Subject: apply: remove prefix_length member from apply_state Use a NULL-and-NUL check to see if we have a prefix and consistently use C string functions on it instead of storing its length in a member of struct apply_state. This avoids strlen() calls and simplifies the code. Signed-off-by: Rene Scharfe Signed-off-by: Junio C Hamano --- apply.c | 12 +++++------- apply.h | 1 - 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/apply.c b/apply.c index 0e2caeab9c..4f67896b65 100644 --- a/apply.c +++ b/apply.c @@ -79,7 +79,6 @@ int init_apply_state(struct apply_state *state, { memset(state, 0, sizeof(*state)); state->prefix = prefix; - state->prefix_length = state->prefix ? strlen(state->prefix) : 0; state->lock_file = lock_file; state->newfd = -1; state->apply = 1; @@ -795,11 +794,11 @@ static int guess_p_value(struct apply_state *state, const char *nameline) * Does it begin with "a/$our-prefix" and such? Then this is * very likely to apply to our directory. */ - if (!strncmp(name, state->prefix, state->prefix_length)) + if (starts_with(name, state->prefix)) val = count_slashes(state->prefix); else { cp++; - if (!strncmp(cp, state->prefix, state->prefix_length)) + if (starts_with(cp, state->prefix)) val = count_slashes(state->prefix) + 1; } } @@ -2078,10 +2077,9 @@ static int use_patch(struct apply_state *state, struct patch *p) int i; /* Paths outside are not touched regardless of "--include" */ - if (0 < state->prefix_length) { - int pathlen = strlen(pathname); - if (pathlen <= state->prefix_length || - memcmp(state->prefix, pathname, state->prefix_length)) + if (state->prefix && *state->prefix) { + const char *rest; + if (!skip_prefix(pathname, state->prefix, &rest) || !*rest) return 0; } diff --git a/apply.h b/apply.h index b3d6783d55..d9b3957703 100644 --- a/apply.h +++ b/apply.h @@ -35,7 +35,6 @@ enum apply_verbosity { struct apply_state { const char *prefix; - int prefix_length; /* These are lock_file related */ struct lock_file *lock_file; -- cgit v1.2.1