From: Junio C Hamano Date: Wed, 10 Oct 2012 21:50:52 GMT Subject: Re: [PATCH v2 2/2] attr: more matching optimizations from .gitignore Message-ID: <7vwqyy9etf.fsf@alter.siamese.dyndns.org> In-Reply-To: <7v626iatt9.fsf@alter.siamese.dyndns.org> Junio C Hamano writes: > Nguyễn Thái Ngọc Duy writes: > >> @@ -690,16 +689,18 @@ static int path_matches(const char *pathname, int pathlen, >> * contain the trailing slash >> */ >> >> - if (pathlen < baselen || >> + if (pathlen < baselen + 1 || >> (baselen && pathname[baselen] != '/') || >> - strncmp(pathname, base, baselen)) >> + strncmp_icase(pathname, base, baselen)) > > Shouldn't the last comparison be > > strncmp_icase(pathname, base, baselen + 1) > > instead, if you are trying to match this part from dir.c where > baselen does count the trailing slash? > > if (pathlen < x->baselen || > (x->baselen && pathname[x->baselen-1] != '/') || > strncmp_icase(pathname, x->base, x->baselen)) > continue; > > In other words, relative to what was queued to 'pu', something like > this instead.... Aaaaand,... it doesn't work and breaks t0003.sh. Sigh...