From dcdfed5f9487f4232affc156518e05e00c10da5f Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 7 Jun 2012 19:51:48 -0700 Subject: InheritEclass: avoid false positive in func regex --- pym/repoman/checks.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pym/repoman/checks.py b/pym/repoman/checks.py index 65f024ce4..2864d675d 100644 --- a/pym/repoman/checks.py +++ b/pym/repoman/checks.py @@ -469,7 +469,10 @@ class InheritEclass(LineCheck): self._ignore_missing = ignore_missing inherit_re = eclass self._inherit_re = re.compile(r'^(\s*|.*[|&]\s*)\binherit\s(.*\s)?%s(\s|$)' % inherit_re) - self._func_re = re.compile(r'\b(' + '|'.join(funcs) + r')\b') + # Match when the function is preceded only by leading whitespace or a shell + # operator such as (, {, |, ||, or &&. This prevents false postives in + # things like elog messages, as reported in bug #413285. + self._func_re = re.compile(r'(^|[|&{(])\s*\b(' + '|'.join(funcs) + r')\b') def new(self, pkg): self.repoman_check_name = 'inherit.missing' @@ -493,7 +496,7 @@ class InheritEclass(LineCheck): if s: self._func_call = True return '%s.eclass is not inherited, but "%s" found at line: %s' % \ - (self._eclass, s.group(0), '%d') + (self._eclass, s.group(2), '%d') elif not self._func_call: self._func_call = self._func_re.search(line) -- cgit v1.2.3-1-g7c22