summaryrefslogtreecommitdiff
path: root/dir.c
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2012-10-15 06:24:36 (GMT)
committerJunio C Hamano <gitster@pobox.com>2012-10-15 21:57:16 (GMT)
commita3ea4d7199870595eb3a264c4b41e725b4417bc2 (patch)
tree1bc77270441107a427f64b43040da7fc5d426ef1 /dir.c
parent593cb8802eb43b17e6344790278cea7e6ec68b43 (diff)
downloadgit-a3ea4d7199870595eb3a264c4b41e725b4417bc2.zip
git-a3ea4d7199870595eb3a264c4b41e725b4417bc2.tar.gz
git-a3ea4d7199870595eb3a264c4b41e725b4417bc2.tar.bz2
exclude: fix a bug in prefix compare optimization
When "namelen" becomes zero at this stage, we have matched the fixed part, but whether it actually matches the pattern still depends on the pattern in "exclude". As demonstrated in t3001, path "three/a.3" exists and it matches the "three/a.3" part in pattern "three/a.3[abc]", but that does not mean a true match. Don't be too optimistic and let fnmatch() do the job. 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.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/dir.c b/dir.c
index d9b5561..22d0b7b 100644
--- a/dir.c
+++ b/dir.c
@@ -585,7 +585,7 @@ int excluded_from_list(const char *pathname,
namelen -= prefix;
}
- if (!namelen || !fnmatch_icase(exclude, name, FNM_PATHNAME))
+ if (!fnmatch_icase(exclude, name, FNM_PATHNAME))
return to_exclude;
}
return -1; /* undecided */