summaryrefslogtreecommitdiffstats
path: root/exclude.cc
diff options
context:
space:
mode:
Diffstat (limited to 'exclude.cc')
-rw-r--r--exclude.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/exclude.cc b/exclude.cc
index fc9d67d..1bdae6e 100644
--- a/exclude.cc
+++ b/exclude.cc
@@ -47,7 +47,12 @@ bool Exclude::excluded( const char * const filename )
while( *p )
{
for( unsigned i = 0; i < patterns.size(); ++i )
+#ifdef FNM_LEADING_DIR
if( fnmatch( patterns[i].c_str(), p, FNM_LEADING_DIR ) == 0 ) return true;
+#else
+ if( fnmatch( patterns[i].c_str(), p, 0 ) == 0 ||
+ fnmatch( ( patterns[i] + "/*" ).c_str(), p, 0 ) == 0 ) return true;
+#endif
while( *p && *p != '/' ) ++p; // skip component
while( *p == '/' ) ++p; // skip slashes
}