builtin/apply: move 'state' init into init_apply_state()

When the apply functionality will be libified, the 'struct apply_state'
will be used by different pieces of code.

To properly initialize a 'struct apply_state', let's provide a nice
and easy to use init_apply_state() function.

Let's also provide clear_apply_state() to release memory used by
'struct apply_state' members, so that a 'struct apply_state' instance
can be easily reused without leaking memory.

Note that clear_apply_state() does nothing for now, but it will later.

While at it, let's rename 'prefix_' parameter to 'prefix'.

Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Reviewed-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Christian Couder 2016-05-24 10:10:46 +02:00 коммит произвёл Junio C Hamano
Родитель 2fc0f1849b
Коммит 6f27b941f2
1 изменённых файлов: 22 добавлений и 10 удалений

Просмотреть файл

@ -4522,7 +4522,25 @@ static int option_parse_directory(const struct option *opt,
return 0;
}
int cmd_apply(int argc, const char **argv, const char *prefix_)
static void init_apply_state(struct apply_state *state, const char *prefix)
{
memset(state, 0, sizeof(*state));
state->prefix = prefix;
state->prefix_length = state->prefix ? strlen(state->prefix) : 0;
git_apply_config();
if (apply_default_whitespace)
parse_whitespace_option(apply_default_whitespace);
if (apply_default_ignorewhitespace)
parse_ignorewhitespace_option(apply_default_ignorewhitespace);
}
static void clear_apply_state(struct apply_state *state)
{
/* empty for now */
}
int cmd_apply(int argc, const char **argv, const char *prefix)
{
int i;
int errs = 0;
@ -4603,15 +4621,7 @@ int cmd_apply(int argc, const char **argv, const char *prefix_)
OPT_END()
};
memset(&state, 0, sizeof(state));
state.prefix = prefix_;
state.prefix_length = state.prefix ? strlen(state.prefix) : 0;
git_apply_config();
if (apply_default_whitespace)
parse_whitespace_option(apply_default_whitespace);
if (apply_default_ignorewhitespace)
parse_ignorewhitespace_option(apply_default_ignorewhitespace);
init_apply_state(&state, prefix);
argc = parse_options(argc, argv, state.prefix, builtin_apply_options,
apply_usage, 0);
@ -4695,5 +4705,7 @@ int cmd_apply(int argc, const char **argv, const char *prefix_)
die(_("Unable to write new index file"));
}
clear_apply_state(&state);
return !!errs;
}