summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2015-04-23 17:08:10 +0200
committerCarlos Martín Nieto <cmn@dwim.me>2015-04-23 17:08:10 +0200
commit63e8b08dfcaa039e7bbbcfa4b5cdcea8bddf13c0 (patch)
tree2dd141bfba65683a730fdaeefd3e2a408dc59f6c /src
parent27fa7477b008bff27c5aaecb1b2b908540a5798a (diff)
parentc02a0e46eb0ec68a4069edf34a537cf319be51b6 (diff)
downloadlibgit2-63e8b08dfcaa039e7bbbcfa4b5cdcea8bddf13c0.tar.gz
Merge branch 'attr-ignore'
Diffstat (limited to 'src')
-rw-r--r--src/attr_file.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/attr_file.c b/src/attr_file.c
index 8997946b9..eed39661f 100644
--- a/src/attr_file.c
+++ b/src/attr_file.c
@@ -394,6 +394,7 @@ bool git_attr_fnmatch__match(
if ((match->flags & GIT_ATTR_FNMATCH_DIRECTORY) && !path->is_dir) {
int matchval;
+ char *matchpath;
/* for attribute checks or root ignore checks, fail match */
if (!(match->flags & GIT_ATTR_FNMATCH_IGNORE) ||
@@ -403,7 +404,13 @@ bool git_attr_fnmatch__match(
/* for ignore checks, use container of current item for check */
path->basename[-1] = '\0';
flags |= FNM_LEADING_DIR;
- matchval = p_fnmatch(match->pattern, path->path, flags);
+
+ if (match->containing_dir)
+ matchpath = path->basename;
+ else
+ matchpath = path->path;
+
+ matchval = p_fnmatch(match->pattern, matchpath, flags);
path->basename[-1] = '/';
return (matchval != FNM_NOMATCH);
}