From: Junio C Hamano Date: Mon, 09 Jan 2012 19:43:21 GMT Subject: Re: [PATCH] gitignore: warn about pointless syntax Message-ID: <7vhb04ek6e.fsf@alter.siamese.dyndns.org> In-Reply-To: <20120109162802.GA2374@sigill.intra.peff.net> Jeff King writes: > On Mon, Jan 09, 2012 at 04:40:47PM +0100, Jan Engelhardt wrote: > >> +static inline void check_bogus_wildcard(const char *file, const char *p) >> +{ >> + if (strstr(p, "**") == NULL) >> + return; >> + warning(_("Pattern \"%s\" from file \"%s\": Double asterisk does not " >> + "have a special meaning and is interpreted just like a single " >> + "asterisk.\n"), file, p); > > Wouldn't this also match the meaningful "foo\**"? Yes. But trying to catch that false positive by checking one before "**" against a backslash is not a way to do so as it will then turn "foo\\**" into a false negative, and you would end up reimplementing fnmatch if you really want to avoid false positives nor negatives. At that point, you may be better off implementing git_fnmatch() instead that understands the double-asterisk that works as some people may expect it to work ;-).