From 4875c9791e787af07992d3ba30061885322b7d11 Mon Sep 17 00:00:00 2001 From: Jeff Hostetler Date: Tue, 5 Dec 2017 16:50:13 +0000 Subject: list-objects-filter-options: support --no-filter Teach opt_parse_list_objects_filter() to take --no-filter option and to free the contents of struct filter_options. This command line argument will be automatically inherited by commands using OPT_PARSE_LIST_OBJECTS_FILTER(); this includes pack-objects. Signed-off-by: Jeff Hostetler Signed-off-by: Junio C Hamano --- list-objects-filter-options.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'list-objects-filter-options.c') diff --git a/list-objects-filter-options.c b/list-objects-filter-options.c index 52bdec75b..4c5b34e94 100644 --- a/list-objects-filter-options.c +++ b/list-objects-filter-options.c @@ -74,8 +74,19 @@ int opt_parse_list_objects_filter(const struct option *opt, { struct list_objects_filter_options *filter_options = opt->value; - assert(arg); - assert(!unset); + if (unset || !arg) { + list_objects_filter_release(filter_options); + return 0; + } return parse_list_objects_filter(filter_options, arg); } + +void list_objects_filter_release( + struct list_objects_filter_options *filter_options) +{ + free(filter_options->filter_spec); + free(filter_options->sparse_oid_value); + free(filter_options->sparse_path_value); + memset(filter_options, 0, sizeof(*filter_options)); +} -- cgit v1.2.3