Skip to content

Commit db4dbfd

Browse files
committed
Fix lines which aren't actually includes crashing includeorder.py
1 parent 82fde0f commit db4dbfd

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

wpiformat/test/test_includeorder.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,10 @@ def test_includeorder():
485485
"#include <iostream>" + os.linesep + \
486486
"#include <memory>" + os.linesep, True, True))
487487

488+
# Ensure lines containing #include that aren't includes are not processed
489+
inputs.append(("./Test.h", "// #included here" + os.linesep))
490+
outputs.append(("// #included here" + os.linesep, False, True))
491+
488492
assert len(inputs) == len(outputs)
489493

490494
config_file = Config(os.path.abspath(os.getcwd()), ".styleguide")

wpiformat/wpiformat/includeorder.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,14 @@ def header_sort(self, config_file, lines_list, file_name, start, end,
274274
output_list.append(ifdef)
275275
break
276276
elif "#include" in lines_list[i]:
277+
include_line = self.header_regex.search(lines_list[i])
278+
if not include_line:
279+
# Write headers and #ifdef blocks if found
280+
written = self.write_headers(includes, ifdef_blocks)
281+
if written:
282+
output_list.extend(written)
283+
return (output_list, includes_present, i, True)
284+
277285
if "NOLINT" in lines_list[i]:
278286
# NOLINT is a barrier, so flush includes
279287
written = self.write_headers(includes)
@@ -292,8 +300,6 @@ def header_sort(self, config_file, lines_list, file_name, start, end,
292300
continue
293301

294302
# Insert header into appropriate list
295-
include_line = self.header_regex.search(lines_list[i])
296-
297303
idx = self.classify_header(config_file, include_line, file_name)
298304
if idx != -1:
299305
if include_line.group("comment"):
@@ -370,10 +376,11 @@ def run_pipeline(self, config_file, name, lines):
370376
output_list.extend(suboutput)
371377

372378
# Remove possible extra newline from #endif
373-
output_list[-1] = output_list[-1].rstrip()
379+
if len(output_list) > 0:
380+
output_list[-1] = output_list[-1].rstrip()
381+
output_list.append("")
374382

375383
# Write rest of file
376-
output_list.append("")
377384
output_list.extend(lines_list[i:])
378385

379386
output = self.linesep.join(output_list).rstrip() + self.linesep

0 commit comments

Comments
 (0)