forked from OSchip/llvm-project
[clang-format-diff] Fix missing formatting for zero length git diff lines
If we only delete lines that are outer block statements (if, while, etc), clang-format-diff.py can't format the statements inside the block statements. An example to repro: 1. Delete the if statment at line 118 in llvm/lib/CodeGen/Analysis.cpp. 2. Run `git diff -U0 --no-color HEAD^ | clang/tools/clang-format/clang-format-diff.py -i -p1` It fails to format the statement after if. Differential Revision: https://reviews.llvm.org/D111273
This commit is contained in:
parent
c960c8c339
commit
f93169226a
|
@ -90,9 +90,11 @@ def main():
|
|||
line_count = 1
|
||||
if match.group(3):
|
||||
line_count = int(match.group(3))
|
||||
if line_count == 0:
|
||||
continue
|
||||
end_line = start_line + line_count - 1
|
||||
# Also format lines range if line_count is 0 in case of deleting
|
||||
# surrounding statements.
|
||||
end_line = start_line
|
||||
if line_count != 0:
|
||||
end_line += line_count - 1
|
||||
lines_by_file.setdefault(filename, []).extend(
|
||||
['-lines', str(start_line) + ':' + str(end_line)])
|
||||
|
||||
|
|
|
@ -321,8 +321,9 @@ def extract_lines(patch_file):
|
|||
line_count = 1
|
||||
if match.group(3):
|
||||
line_count = int(match.group(3))
|
||||
if line_count > 0:
|
||||
matches.setdefault(filename, []).append(Range(start_line, line_count))
|
||||
if line_count == 0:
|
||||
line_count = 1
|
||||
matches.setdefault(filename, []).append(Range(start_line, line_count))
|
||||
return matches
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue