Duy Nguyen <pclouds@xxxxxxxxx> writes: >> So we would want to do any adjustment to the fix when we merge up to >> maint. > > OK. Then Junio, you may need to resolve the conflict with something > like this. Originally match_basename uses fnmatch, not wildmatch. But > using wildmatch there too should be fine, now that both > match_{base,path}name share fnmatch_icase_mem(). Thanks. The result still smells somewhat funny, though. fnmatch_icase_mem() is meant to be a wrapper of fnmatch_icase() for counted strings and its matching semantics should be the same as fnmatch_icase(). With the merge-fix, fnmatch_icase_mem() calls into wildmatch(), but fnmatch_icase() still calls into fnmatch(). The latter's flags are meant to be taken from FNM_* family, but the former takes flags from WM_* family of bits, no? I think you are running with USE_WILDMATCH which may make the differences harder to notice, but the name fnmatch_icase_mem() that is not in the same family as fnmatch but is from the wildmatch() family smells like an accident waiting to happen. I tend to think in the longer term it may be a good idea to build with USE_WILDMATCH unconditionally (we can lose compat/fnmatch), so in the end this may not matter that much, but before that happens, soon after we merge the regression fix with this merge-fix, we may want to update the codebase as if we applied a series that were based on 'maint' as you suggested, i.e. using raw wildmatch() consistently in the match_{base,path}name() codepath. Opinions? > > -- 8< -- > diff --git a/dir.c b/dir.c > index 73a08af..84744df 100644 > --- a/dir.c > +++ b/dir.c > @@ -81,7 +81,9 @@ static int fnmatch_icase_mem(const char *pattern, int patternlen, > use_str = str_buf.buf; > } > > - match_status = fnmatch_icase(use_pat, use_str, flags); > + if (ignore_case) > + flags |= WM_CASEFOLD; > + match_status = wildmatch(use_pat, use_str, flags, NULL); > > strbuf_release(&pat_buf); > strbuf_release(&str_buf); > @@ -564,7 +566,7 @@ int match_pathname(const char *pathname, int pathlen, > > return fnmatch_icase_mem(pattern, patternlen, > name, namelen, > - FNM_PATHNAME) == 0; > + WM_PATHNAME) == 0; > } > > /* > -- 8< -- -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html