Skip to content

Commit

Permalink
clang-format-diff: Make it work with python3 too
Browse files Browse the repository at this point in the history
Summary: It is not necessary, but would be nice if the script run on python3 as well (as opposed to only python2, which is going to be deprecated https://pythonclock.org/)

Contributed by MarcoFalke!

Reviewers: krasimir

Reviewed By: krasimir

Subscribers: lebedev.ri, sammccall, cfe-commits

Differential Revision: https://reviews.llvm.org/D48098

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@338839 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
krasimirgg committed Aug 3, 2018
1 parent 5ddb2e4 commit 58205f6
Showing 1 changed file with 15 additions and 10 deletions.
25 changes: 15 additions & 10 deletions tools/clang-format/clang-format-diff.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,12 @@
import argparse
import difflib
import re
import string
import subprocess
import StringIO
import sys
try:
from StringIO import StringIO
except ImportError:
from io import StringIO


def main():
Expand Down Expand Up @@ -84,14 +86,14 @@ def main():
line_count = int(match.group(3))
if line_count == 0:
continue
end_line = start_line + line_count - 1;
end_line = start_line + line_count - 1
lines_by_file.setdefault(filename, []).extend(
['-lines', str(start_line) + ':' + str(end_line)])

# Reformat files containing changes in place.
for filename, lines in lines_by_file.iteritems():
for filename, lines in lines_by_file.items():
if args.i and args.verbose:
print 'Formatting', filename
print('Formatting {}'.format(filename))
command = [args.binary, filename]
if args.i:
command.append('-i')
Expand All @@ -100,20 +102,23 @@ def main():
command.extend(lines)
if args.style:
command.extend(['-style', args.style])
p = subprocess.Popen(command, stdout=subprocess.PIPE,
stderr=None, stdin=subprocess.PIPE)
p = subprocess.Popen(command,
stdout=subprocess.PIPE,
stderr=None,
stdin=subprocess.PIPE,
universal_newlines=True)
stdout, stderr = p.communicate()
if p.returncode != 0:
sys.exit(p.returncode);
sys.exit(p.returncode)

if not args.i:
with open(filename) as f:
code = f.readlines()
formatted_code = StringIO.StringIO(stdout).readlines()
formatted_code = StringIO(stdout).readlines()
diff = difflib.unified_diff(code, formatted_code,
filename, filename,
'(before formatting)', '(after formatting)')
diff_string = string.join(diff, '')
diff_string = ''.join(diff)
if len(diff_string) > 0:
sys.stdout.write(diff_string)

Expand Down

0 comments on commit 58205f6

Please sign in to comment.