diff options
-rw-r--r-- | pym/repoman/checks.py | 7 |
1 files 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) |