Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> writes: > Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> Because? Title just tells what the patch meant to do (i.e. instead of returning it keeps looping), but does not say why it is a good idea. Besides, this a no-op patch and does not make it keep looping. > --- > dir.c | 15 ++++++++++----- > 1 file changed, 10 insertions(+), 5 deletions(-) > > diff --git a/dir.c b/dir.c > index c00c7e2..3a7630a 100644 > --- a/dir.c > +++ b/dir.c > @@ -901,6 +901,7 @@ static struct exclude *last_exclude_matching_from_list(const char *pathname, > int *dtype, > struct exclude_list *el) > { > + struct exclude *exc = NULL; /* undecided */ > int i; > > if (!el->nr) > @@ -922,18 +923,22 @@ static struct exclude *last_exclude_matching_from_list(const char *pathname, Note that we are in a big for() loop that scans backwards an array. > if (match_basename(basename, > pathlen - (basename - pathname), > exclude, prefix, x->patternlen, > - x->flags)) > - return x; > + x->flags)) { > + exc = x; > + break; > + } We used to return x immediately; now we store x to exc and break, i.e. leave the loop. > continue; > } > > assert(x->baselen == 0 || x->base[x->baselen - 1] == '/'); > if (match_pathname(pathname, pathlen, > x->base, x->baselen ? x->baselen - 1 : 0, > - exclude, prefix, x->patternlen, x->flags)) > - return x; > + exclude, prefix, x->patternlen, x->flags)) { > + exc = x; > + break; We used to return x immediately; now we store x to exc and break, i.e. leave the loop. > + } > } > - return NULL; /* undecided */ > + return exc; And then we return exc. > } -- 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