зеркало из https://github.com/microsoft/git.git
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 <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
95d6787973
Коммит
881529c846
12
apply.c
12
apply.c
|
@ -79,7 +79,6 @@ int init_apply_state(struct apply_state *state,
|
||||||
{
|
{
|
||||||
memset(state, 0, sizeof(*state));
|
memset(state, 0, sizeof(*state));
|
||||||
state->prefix = prefix;
|
state->prefix = prefix;
|
||||||
state->prefix_length = state->prefix ? strlen(state->prefix) : 0;
|
|
||||||
state->lock_file = lock_file;
|
state->lock_file = lock_file;
|
||||||
state->newfd = -1;
|
state->newfd = -1;
|
||||||
state->apply = 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
|
* Does it begin with "a/$our-prefix" and such? Then this is
|
||||||
* very likely to apply to our directory.
|
* 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);
|
val = count_slashes(state->prefix);
|
||||||
else {
|
else {
|
||||||
cp++;
|
cp++;
|
||||||
if (!strncmp(cp, state->prefix, state->prefix_length))
|
if (starts_with(cp, state->prefix))
|
||||||
val = count_slashes(state->prefix) + 1;
|
val = count_slashes(state->prefix) + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2078,10 +2077,9 @@ static int use_patch(struct apply_state *state, struct patch *p)
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* Paths outside are not touched regardless of "--include" */
|
/* Paths outside are not touched regardless of "--include" */
|
||||||
if (0 < state->prefix_length) {
|
if (state->prefix && *state->prefix) {
|
||||||
int pathlen = strlen(pathname);
|
const char *rest;
|
||||||
if (pathlen <= state->prefix_length ||
|
if (!skip_prefix(pathname, state->prefix, &rest) || !*rest)
|
||||||
memcmp(state->prefix, pathname, state->prefix_length))
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
1
apply.h
1
apply.h
|
@ -35,7 +35,6 @@ enum apply_verbosity {
|
||||||
|
|
||||||
struct apply_state {
|
struct apply_state {
|
||||||
const char *prefix;
|
const char *prefix;
|
||||||
int prefix_length;
|
|
||||||
|
|
||||||
/* These are lock_file related */
|
/* These are lock_file related */
|
||||||
struct lock_file *lock_file;
|
struct lock_file *lock_file;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче