499 if filter not in self.filterpats: |
499 if filter not in self.filterpats: |
500 l = [] |
500 l = [] |
501 for pat, cmd in self.ui.configitems(filter): |
501 for pat, cmd in self.ui.configitems(filter): |
502 mf = util.matcher(self.root, "", [pat], [], [])[1] |
502 mf = util.matcher(self.root, "", [pat], [], [])[1] |
503 fn = None |
503 fn = None |
|
504 params = cmd |
504 for name, filterfn in self._datafilters.iteritems(): |
505 for name, filterfn in self._datafilters.iteritems(): |
505 if cmd.startswith(name): |
506 if cmd.startswith(name): |
506 fn = filterfn |
507 fn = filterfn |
|
508 params = cmd[len(name):].lstrip() |
507 break |
509 break |
508 if not fn: |
510 if not fn: |
509 fn = lambda s, c, **kwargs: util.filter(s, c) |
511 fn = lambda s, c, **kwargs: util.filter(s, c) |
510 # Wrap old filters not supporting keyword arguments |
512 # Wrap old filters not supporting keyword arguments |
511 if not inspect.getargspec(fn)[2]: |
513 if not inspect.getargspec(fn)[2]: |
512 oldfn = fn |
514 oldfn = fn |
513 fn = lambda s, c, **kwargs: oldfn(s, c) |
515 fn = lambda s, c, **kwargs: oldfn(s, c) |
514 l.append((mf, fn, cmd)) |
516 l.append((mf, fn, params)) |
515 self.filterpats[filter] = l |
517 self.filterpats[filter] = l |
516 |
518 |
517 for mf, fn, cmd in self.filterpats[filter]: |
519 for mf, fn, cmd in self.filterpats[filter]: |
518 if mf(filename): |
520 if mf(filename): |
519 self.ui.debug(_("filtering %s through %s\n") % (filename, cmd)) |
521 self.ui.debug(_("filtering %s through %s\n") % (filename, cmd)) |