summaryrefslogtreecommitdiff
path: root/dir.c
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2015-09-21 09:56:14 (GMT)
committerJunio C Hamano <gitster@pobox.com>2015-09-21 18:06:03 (GMT)
commite6efecc46a34a984535e6a90e45a9db45af4eff2 (patch)
tree4539c7a62a9f42aa6e5d51189789039e0c39e001 /dir.c
parentecad27cf98c391d5cfdc26ce0e442e02347baad0 (diff)
downloadgit-e6efecc46a34a984535e6a90e45a9db45af4eff2.zip
git-e6efecc46a34a984535e6a90e45a9db45af4eff2.tar.gz
git-e6efecc46a34a984535e6a90e45a9db45af4eff2.tar.bz2
dir.c: make last_exclude_matching_from_list() run til the end
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>
Diffstat (limited to 'dir.c')
-rw-r--r--dir.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/dir.c b/dir.c
index 0943a81..4893181 100644
--- 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;
}
/*