clang-format: Don't generate unnecessary replacements for \r\n line endings.
authorDaniel Jasper <djasper@google.com>
Wed, 17 Jun 2015 12:23:15 +0000 (12:23 +0000)
committerDaniel Jasper <djasper@google.com>
Wed, 17 Jun 2015 12:23:15 +0000 (12:23 +0000)
Patch by Mathieu Champlon. Thank you.

llvm-svn: 239900

clang/lib/Format/BreakableToken.cpp
clang/unittests/Format/FormatTest.cpp

index e3e162d..e364986 100644 (file)
@@ -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.
index acb1209..f129bbb 100644 (file)
@@ -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) {