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:
Laurent Pinchart 2024-05-31 14:24:24 +03:00
parent 9b29eba7a2
commit b8b24c5b5e

View file

@ -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