From d6e618892f75946a7557a3d2159c9de80d3d8956 Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Wed, 17 Jun 2015 12:23:15 +0000 Subject: clang-format: Don't generate unnecessary replacements for \r\n line endings. Patch by Mathieu Champlon. Thank you. llvm-svn: 239900 --- clang/lib/Format/BreakableToken.cpp | 2 +- clang/unittests/Format/FormatTest.cpp | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'clang') diff --git a/clang/lib/Format/BreakableToken.cpp b/clang/lib/Format/BreakableToken.cpp index e3e162d070f..e364986783b 100644 --- a/clang/lib/Format/BreakableToken.cpp +++ b/clang/lib/Format/BreakableToken.cpp @@ -345,7 +345,7 @@ void BreakableBlockComment::adjustWhitespace(unsigned LineIndex, // Calculate the start of the non-whitespace text in the current line. size_t StartOfLine = Lines[LineIndex].find_first_not_of(Blanks); if (StartOfLine == StringRef::npos) - StartOfLine = Lines[LineIndex].size(); + StartOfLine = Lines[LineIndex].rtrim("\r\n").size(); StringRef Whitespace = Lines[LineIndex].substr(0, StartOfLine); // Adjust Lines to only contain relevant text. diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index acb120962e4..f129bbbd425 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -146,6 +146,13 @@ TEST_F(FormatTest, OnlyGeneratesNecessaryReplacements) { " f();\n" "}")); EXPECT_EQ(0, ReplacementCount); + EXPECT_EQ("/*\r\n" + "\r\n" + "*/\r\n", + format("/*\r\n" + "\r\n" + "*/\r\n")); + EXPECT_EQ(0, ReplacementCount); } TEST_F(FormatTest, RemovesEmptyLines) { -- cgit v1.2.1