On Mon, Jul 03, 2023 at 01:27:24AM -0400, Jeff King wrote: > On Tue, Jun 20, 2023 at 10:21:21AM -0400, Taylor Blau wrote: > > > Once we start passing either in, `match_pattern()` will have little to > > do with a particular `struct ref_filter *` instance. To clarify this, > > drop it from the argument list, and replace it with the only bit of the > > `ref_filter` that we care about (`filter->ignore_case`). > > Makes sense, but... > > > @@ -2134,9 +2134,10 @@ static int match_pattern(const struct ref_filter *filter, const char *refname) > > * matches a pattern "refs/heads/" but not "refs/heads/m") or a > > * wildcard (e.g. the same ref matches "refs/heads/m*", too). > > */ > > -static int match_name_as_path(const struct ref_filter *filter, const char *refname) > > +static int match_name_as_path(const struct ref_filter *filter, > > + const char **pattern, > > + const char *refname) > > ...wouldn't we then want to do the same for match_name_as_path()? Yes, definitely :-). I'm not sure how I missed this, since the patch message even says that `match_name_as_path()` gets the same treatment as the other function. But in any case, I obviously agree (and the diff below makes sense to me). Applied. > Also, I noticed that you declared it as "const int ignore_case" in > match_pattern(). That's not wrong, but we usually do not bother (it is > passed by value, so const-ness is irrelevant to the caller, and the > compiler can see inside the function that the value is not changed and > optimize appropriately). Indeed :-). Thanks, Taylor