Browse Source

Improved IncludePattern match logic

Jonas Borgström 14 years ago
parent
commit
9f5e029a7b
1 changed files with 5 additions and 1 deletions
  1. 5 1
      darc/helpers.py

+ 5 - 1
darc/helpers.py

@@ -67,6 +67,8 @@ class IncludePattern(object):
     False
     False
     >>> foo.match('/foobar/foo.py')
     >>> foo.match('/foobar/foo.py')
     False
     False
+    >>> foo.match('/foo')
+    True
     """
     """
     def __init__(self, pattern):
     def __init__(self, pattern):
         self.pattern = self.dirpattern = pattern
         self.pattern = self.dirpattern = pattern
@@ -75,7 +77,9 @@ class IncludePattern(object):
 
 
     def match(self, path):
     def match(self, path):
         dir, name = os.path.split(path)
         dir, name = os.path.split(path)
-        return (dir + os.path.sep).startswith(self.dirpattern) or fnmatchcase(name, self.pattern)
+        return (path == self.pattern
+                or (dir + os.path.sep).startswith(self.dirpattern)
+                or fnmatchcase(name, self.pattern))
 
 
     def __repr__(self):
     def __repr__(self):
         return '%s(%s)' % (type(self), self.pattern)
         return '%s(%s)' % (type(self), self.pattern)