diff options
| author | Justin Tobler <jltobler@gmail.com> | 2025-10-21 13:25:56 -0500 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2025-10-21 14:40:37 -0700 |
| commit | eafc03dbe316478acff5eef3b70c037de4758f08 (patch) | |
| tree | 20e2099e616b93fff16edc212ee73571bd1ce6dd /ref-filter.c | |
| parent | builtin/repo: rename repo_info() to cmd_repo_info() (diff) | |
| download | git-eafc03dbe316478acff5eef3b70c037de4758f08.tar.gz git-eafc03dbe316478acff5eef3b70c037de4758f08.zip | |
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>
Diffstat (limited to 'ref-filter.c')
| -rw-r--r-- | ref-filter.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/ref-filter.c b/ref-filter.c index 520d2539c9..2cb5a166d6 100644 --- a/ref-filter.c +++ b/ref-filter.c @@ -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. */ 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 */ if (filter->match_as_path) 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); } - if (!filter->name_patterns[0]) { + if (!filter->name_patterns || !filter->name_patterns[0]) { /* no patterns; we have to look at everything */ return for_each_fullref_with_seek(filter, cb, cb_data, 0); } |
