style: Add a control character checker
Add a style checker that verifies that source code doesn't contain non-printable (control) characters. The only allowed control characters are: * 0x0a / \n: New line * 0x09 / \t: Tab (the whitespace checker enforces no-tabs for C/C++ files) Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Brandon Potter <brandon.potter@amd.com> --HG-- extra : rebase_source : 9ba3e2971774a7b3d73cda34bbee1f19c4add746
This commit is contained in:
parent
2580fcd9d7
commit
a05efc77be
1 changed files with 14 additions and 0 deletions
|
@ -348,6 +348,20 @@ class LineLength(LineVerifier):
|
|||
def fix_line(self, line):
|
||||
pass
|
||||
|
||||
class ControlCharacters(LineVerifier):
|
||||
languages = set(('C', 'C++', 'swig', 'python', 'asm', 'isa', 'scons'))
|
||||
test_name = 'control character'
|
||||
opt_name = 'ascii'
|
||||
|
||||
valid = ('\n', '\t')
|
||||
invalid = "".join([chr(i) for i in range(0, 0x20) if chr(i) not in valid])
|
||||
|
||||
def check_line(self, line):
|
||||
return self.fix_line(line) == line
|
||||
|
||||
def fix_line(self, line):
|
||||
return line.translate(None, ControlCharacters.invalid)
|
||||
|
||||
class BoolCompare(LineVerifier):
|
||||
languages = set(('C', 'C++', 'python'))
|
||||
test_name = 'boolean comparison'
|
||||
|
|
Loading…
Reference in a new issue