diff --git a/post/clang_tidy_review/clang_tidy_review/__init__.py b/post/clang_tidy_review/clang_tidy_review/__init__.py index 7b2475b..8408d64 100644 --- a/post/clang_tidy_review/clang_tidy_review/__init__.py +++ b/post/clang_tidy_review/clang_tidy_review/__init__.py @@ -948,9 +948,14 @@ def get_line_ranges(diff, files): line_filter_json = [] for name, lines in lines_by_file.items(): - # On windows, unidiff has forward slashes but clang-tidy expects backslashes - name = os.path.join(*name.split("/")) line_filter_json.append({"name": name, "lines": lines}) + # On windows, unidiff has forward slashes but cl.exe expects backslashes. + # However, clang.exe on windows expects forward slashes. + # Adding a copy of the line filters with backslashes allows for both cl.exe and clang.exe to work. + if os.path.sep == "\\": + # Converts name to backslashes for the cl.exe line filter. + name = os.path.join(*name.split("/")) + line_filter_json.append({"name": name, "lines": lines}) return json.dumps(line_filter_json, separators=(",", ":"))