]> granicus.if.org Git - git/commitdiff
dir.c: make last_exclude_matching_from_list() run til the end
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>
Mon, 21 Sep 2015 09:56:14 +0000 (16:56 +0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 21 Sep 2015 18:06:03 +0000 (11:06 -0700)
The next patch adds some post processing to the result value before it's
returned to the caller. Keep all branches reach the end of the function,
so we can do it all in one place.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
dir.c

diff --git a/dir.c b/dir.c
index 0943a81964ddb7b5b1d83c9c8eafe2b3b2b9da09..4893181a0c5774b158b67ff47a3adf6d342beb64 100644 (file)
--- a/dir.c
+++ b/dir.c
@@ -752,6 +752,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)
@@ -773,18 +774,22 @@ static struct exclude *last_exclude_matching_from_list(const char *pathname,
                        if (match_basename(basename,
                                           pathlen - (basename - pathname),
                                           exclude, prefix, x->patternlen,
-                                          x->flags))
-                               return x;
+                                          x->flags)) {
+                               exc = x;
+                               break;
+                       }
                        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;
+               }
        }
-       return NULL; /* undecided */
+       return exc;
 }
 
 /*