utils: checkstyle.py: Refactor IncludeChecker
The IncludeCheck warns when code uses C++ standard library headers where corresponding C compatibility headers are preferred. We have an exception to that rule for math.h, where cmath is prefered. In order to prepare for extending checkstyle.py to enforce that rule, refactor the way the IncludeChecker identifies headers. No functional change is intended. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
parent
9b29eba7a2
commit
b8b24c5b5e
1 changed files with 7 additions and 6 deletions
|
@ -565,11 +565,11 @@ class StyleIssue(object):
|
|||
class IncludeChecker(StyleChecker):
|
||||
patterns = ('*.cpp', '*.h')
|
||||
|
||||
headers = ('assert', 'ctype', 'errno', 'fenv', 'float', 'inttypes',
|
||||
'limits', 'locale', 'setjmp', 'signal', 'stdarg', 'stddef',
|
||||
'stdint', 'stdio', 'stdlib', 'string', 'time', 'uchar', 'wchar',
|
||||
'wctype')
|
||||
include_regex = re.compile(r'^#include <c([a-z]*)>')
|
||||
headers = ('cassert', 'cctype', 'cerrno', 'cfenv', 'cfloat', 'cinttypes',
|
||||
'climits', 'clocale', 'csetjmp', 'csignal', 'cstdarg', 'cstddef',
|
||||
'cstdint', 'cstdio', 'cstdlib', 'cstring', 'ctime', 'cuchar',
|
||||
'cwchar', 'cwctype')
|
||||
include_regex = re.compile(r'^#include <([a-z.]*)>')
|
||||
|
||||
def __init__(self, content):
|
||||
super().__init__()
|
||||
|
@ -588,8 +588,9 @@ class IncludeChecker(StyleChecker):
|
|||
if header not in IncludeChecker.headers:
|
||||
continue
|
||||
|
||||
header = header[1:] + '.h'
|
||||
issues.append(StyleIssue(line_number, line,
|
||||
'C compatibility header <%s.h> is preferred' % header))
|
||||
'C compatibility header <%s> is preferred' % header))
|
||||
|
||||
return issues
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue