ref-filter: allow NULL filter pattern
When setting up `struct ref_filter` for filter_refs(), the `name_patterns` field must point to an array of pattern strings even if no patterns are required. To improve this interface, treat a NULL `name_patterns` field the same as when it points to an empty array. Signed-off-by: Justin Tobler <jltobler@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>seen
parent
9cd5c5d785
commit
dc34782743
|
@ -2664,7 +2664,7 @@ static int match_name_as_path(const char **pattern, const char *refname,
|
||||||
/* Return 1 if the refname matches one of the patterns, otherwise 0. */
|
/* Return 1 if the refname matches one of the patterns, otherwise 0. */
|
||||||
static int filter_pattern_match(struct ref_filter *filter, const char *refname)
|
static int filter_pattern_match(struct ref_filter *filter, const char *refname)
|
||||||
{
|
{
|
||||||
if (!*filter->name_patterns)
|
if (!filter->name_patterns || !*filter->name_patterns)
|
||||||
return 1; /* No pattern always matches */
|
return 1; /* No pattern always matches */
|
||||||
if (filter->match_as_path)
|
if (filter->match_as_path)
|
||||||
return match_name_as_path(filter->name_patterns, refname,
|
return match_name_as_path(filter->name_patterns, refname,
|
||||||
|
@ -2751,7 +2751,7 @@ static int for_each_fullref_in_pattern(struct ref_filter *filter,
|
||||||
return for_each_fullref_with_seek(filter, cb, cb_data, 0);
|
return for_each_fullref_with_seek(filter, cb, cb_data, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!filter->name_patterns[0]) {
|
if (!filter->name_patterns || !filter->name_patterns[0]) {
|
||||||
/* no patterns; we have to look at everything */
|
/* no patterns; we have to look at everything */
|
||||||
return for_each_fullref_with_seek(filter, cb, cb_data, 0);
|
return for_each_fullref_with_seek(filter, cb, cb_data, 0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue