match: override visitdir() the usual way in subdirmatcher

Just override the function instead of replacing it on each instance.
This commit is contained in:
Martin von Zweigbergk 2017-05-18 10:17:57 -07:00
parent 767cd2bb63
commit ddbf56e07e

View File

@ -397,11 +397,6 @@ class subdirmatcher(match):
# from the inputs. Instead, we override matchfn() and visitdir() to
# call the original matcher with the subdirectory path prepended.
self.matchfn = lambda fn: matcher.matchfn(self._path + "/" + fn)
def visitdir(dir):
if dir == '.':
return matcher.visitdir(self._path)
return matcher.visitdir(self._path + "/" + dir)
self.visitdir = visitdir
def abs(self, f):
return self._matcher.abs(self._path + "/" + f)
@ -412,6 +407,13 @@ class subdirmatcher(match):
def rel(self, f):
return self._matcher.rel(self._path + "/" + f)
def visitdir(self, dir):
if dir == '.':
dir = self._path
else:
dir = self._path + "/" + dir
return self._matcher.visitdir(dir)
class icasefsmatcher(match):
"""A matcher for wdir on case insensitive filesystems, which normalizes the
given patterns to the case in the filesystem.