Skip to content

Commit

Permalink
checkpatch: Use default encoding from email library.
Browse files Browse the repository at this point in the history
There are three paths for running the core checkpatch path: From a file,
from stdin, or reading from git output. Currently, the file version of
this calls the "email" library's decode routine which translates the
stream into a bytes array, which we later call decode() to turn it back
into a regular string. This works on python2 and python3, but the other
paths don't work in python3 due to the following error:

$ utilities/checkpatch.py -1
== Checking HEAD~0 ==
Traceback (most recent call last):
  File "utilities/checkpatch.py", line 491, in <module>
    if ovs_checkpatch_parse(patch, revision):
  File "utilities/checkpatch.py", line 324, in ovs_checkpatch_parse
    for line in text.decode().split('\n'):
AttributeError: 'str' object has no attribute 'decode'

Rather than performing this extra encode/decode, strip these out from
this path so that the stdin and git variants of checkpatch can work in
python3.

Signed-off-by: Joe Stringer <[email protected]>
Acked-by: Ben Pfaff <[email protected]>
  • Loading branch information
joestringer committed Jul 6, 2017
1 parent 665c468 commit 822a3d8
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions utilities/checkpatch.py
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@ def ovs_checkpatch_parse(text, filename):
is_co_author = re.compile(r'(\s*(Co-authored-by: )(.*))$',
re.I | re.M | re.S)

for line in text.decode(errors='ignore').split('\n'):
for line in text.split('\n'):
if current_file != previous_file:
previous_file = current_file

Expand Down Expand Up @@ -418,7 +418,7 @@ def ovs_checkpatch_file(filename):
for part in mail.walk():
if part.get_content_maintype() == 'multipart':
continue
result = ovs_checkpatch_parse(part.get_payload(decode=True), filename)
result = ovs_checkpatch_parse(part.get_payload(decode=False), filename)
if result < 0:
print("Lines checked: %d, Warnings: %d, Errors: %d" %
(total_line, __warnings, __errors))
Expand Down

0 comments on commit 822a3d8

Please sign in to comment.