apply: only pass required data to git_header_name

Currently the 'git_header_name()' function takes 'struct apply_state'
as parameter, even though it only needs the p_value from that struct.

This function is in the callchain of 'parse_git_header()', which we
want to make more generally useful in a subsequent commit.  To make
that happen we only want to pass in the required data to
'parse_git_header()', and not the whole 'struct apply_state', and thus
we want functions in the callchain of 'parse_git_header()' to only
take arguments they really need.

Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Thomas Gummerer 2019-07-08 17:33:04 +01:00 committed by Junio C Hamano
parent d6c88c4fdc
commit 85c3713df5

16
apply.c
View file

@ -1164,7 +1164,7 @@ static const char *skip_tree_prefix(int p_value,
* creation or deletion of an empty file. In any of these cases, * creation or deletion of an empty file. In any of these cases,
* both sides are the same name under a/ and b/ respectively. * both sides are the same name under a/ and b/ respectively.
*/ */
static char *git_header_name(struct apply_state *state, static char *git_header_name(int p_value,
const char *line, const char *line,
int llen) int llen)
{ {
@ -1184,7 +1184,7 @@ static char *git_header_name(struct apply_state *state,
goto free_and_fail1; goto free_and_fail1;
/* strip the a/b prefix including trailing slash */ /* strip the a/b prefix including trailing slash */
cp = skip_tree_prefix(state->p_value, first.buf, first.len); cp = skip_tree_prefix(p_value, first.buf, first.len);
if (!cp) if (!cp)
goto free_and_fail1; goto free_and_fail1;
strbuf_remove(&first, 0, cp - first.buf); strbuf_remove(&first, 0, cp - first.buf);
@ -1201,7 +1201,7 @@ static char *git_header_name(struct apply_state *state,
if (*second == '"') { if (*second == '"') {
if (unquote_c_style(&sp, second, NULL)) if (unquote_c_style(&sp, second, NULL))
goto free_and_fail1; goto free_and_fail1;
cp = skip_tree_prefix(state->p_value, sp.buf, sp.len); cp = skip_tree_prefix(p_value, sp.buf, sp.len);
if (!cp) if (!cp)
goto free_and_fail1; goto free_and_fail1;
/* They must match, otherwise ignore */ /* They must match, otherwise ignore */
@ -1212,7 +1212,7 @@ static char *git_header_name(struct apply_state *state,
} }
/* unquoted second */ /* unquoted second */
cp = skip_tree_prefix(state->p_value, second, line + llen - second); cp = skip_tree_prefix(p_value, second, line + llen - second);
if (!cp) if (!cp)
goto free_and_fail1; goto free_and_fail1;
if (line + llen - cp != first.len || if (line + llen - cp != first.len ||
@ -1227,7 +1227,7 @@ static char *git_header_name(struct apply_state *state,
} }
/* unquoted first name */ /* unquoted first name */
name = skip_tree_prefix(state->p_value, line, llen); name = skip_tree_prefix(p_value, line, llen);
if (!name) if (!name)
return NULL; return NULL;
@ -1243,7 +1243,7 @@ static char *git_header_name(struct apply_state *state,
if (unquote_c_style(&sp, second, NULL)) if (unquote_c_style(&sp, second, NULL))
goto free_and_fail2; goto free_and_fail2;
np = skip_tree_prefix(state->p_value, sp.buf, sp.len); np = skip_tree_prefix(p_value, sp.buf, sp.len);
if (!np) if (!np)
goto free_and_fail2; goto free_and_fail2;
@ -1287,7 +1287,7 @@ static char *git_header_name(struct apply_state *state,
*/ */
if (!name[len + 1]) if (!name[len + 1])
return NULL; /* no postimage name */ return NULL; /* no postimage name */
second = skip_tree_prefix(state->p_value, name + len + 1, second = skip_tree_prefix(p_value, name + len + 1,
line_len - (len + 1)); line_len - (len + 1));
if (!second) if (!second)
return NULL; return NULL;
@ -1333,7 +1333,7 @@ static int parse_git_header(struct apply_state *state,
* or removing or adding empty files), so we get * or removing or adding empty files), so we get
* the default name from the header. * the default name from the header.
*/ */
patch->def_name = git_header_name(state, line, len); patch->def_name = git_header_name(state->p_value, line, len);
if (patch->def_name && state->root.len) { if (patch->def_name && state->root.len) {
char *s = xstrfmt("%s%s", state->root.buf, patch->def_name); char *s = xstrfmt("%s%s", state->root.buf, patch->def_name);
free(patch->def_name); free(patch->def_name);