Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(39)

Side by Side Diff: tools/clang/scripts/apply_fixits.py

Issue 1554823002: Fix apply_fixits.py to always read from stdin. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2015 The Chromium Authors. All rights reserved. 2 # Copyright 2015 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 # 5 #
6 # Script to apply fixits generated by clang. This is to work around the fact 6 # Script to apply fixits generated by clang. This is to work around the fact
7 # that clang's -Xclang -fixit-recompile flag, which automatically applies fixits 7 # that clang's -Xclang -fixit-recompile flag, which automatically applies fixits
8 # and recompiles, doesn't work well with parallel invocations of clang. 8 # and recompiles, doesn't work well with parallel invocations of clang.
9 # 9 #
10 # Usage: 10 # Usage:
(...skipping 30 matching lines...) Expand all
41 def main(): 41 def main():
42 parser = argparse.ArgumentParser() 42 parser = argparse.ArgumentParser()
43 parser.add_argument( 43 parser.add_argument(
44 'build_directory', 44 'build_directory',
45 nargs='?', 45 nargs='?',
46 default='out/Debug', 46 default='out/Debug',
47 help='path to the build directory to complete relative paths in fixits') 47 help='path to the build directory to complete relative paths in fixits')
48 args = parser.parse_args() 48 args = parser.parse_args()
49 49
50 fixits = collections.defaultdict(list) 50 fixits = collections.defaultdict(list)
51 for line in fileinput.input(): 51 for line in fileinput.input(['-']):
52 if not line.startswith('fix-it:'): 52 if not line.startswith('fix-it:'):
53 continue 53 continue
54 m = _FIXIT_RE.match(line) 54 m = _FIXIT_RE.match(line)
55 if not m: 55 if not m:
56 continue 56 continue
57 # The negative line numbers are a cheap hack so we can sort things in line 57 # The negative line numbers are a cheap hack so we can sort things in line
58 # order but reverse column order. Applying the fixits in reverse order makes 58 # order but reverse column order. Applying the fixits in reverse order makes
59 # things simpler, since offsets won't have to be adjusted as the text is 59 # things simpler, since offsets won't have to be adjusted as the text is
60 # changed. 60 # changed.
61 fixits[m.group('file')].append(FixIt( 61 fixits[m.group('file')].append(FixIt(
(...skipping 17 matching lines...) Expand all
79 line = lines[fixit.start_line - 1] 79 line = lines[fixit.start_line - 1]
80 lines[fixit.start_line - 1] = (line[:-fixit.start_col - 1] + fixit.text 80 lines[fixit.start_line - 1] = (line[:-fixit.start_col - 1] + fixit.text
81 + line[-fixit.end_col - 1:]) 81 + line[-fixit.end_col - 1:])
82 f.seek(0) 82 f.seek(0)
83 f.truncate() 83 f.truncate()
84 f.writelines(lines) 84 f.writelines(lines)
85 85
86 86
87 if __name__ == '__main__': 87 if __name__ == '__main__':
88 sys.exit(main()) 88 sys.exit(main())
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698