]> granicus.if.org Git - clang/commitdiff
clang-format: Fix string breaking after "<<".
authorDaniel Jasper <djasper@google.com>
Fri, 2 Aug 2013 11:01:15 +0000 (11:01 +0000)
committerDaniel Jasper <djasper@google.com>
Fri, 2 Aug 2013 11:01:15 +0000 (11:01 +0000)
Before, clang-format would not break overly long string literals
following a "<<" with FormatStyle::AlwaysBreakBeforeMultilineStrings
being set.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187650 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Format/Format.cpp
unittests/Format/FormatTest.cpp

index b2bf3fea98d5ac239cde53f5b491784331dc6f1b..02cbc316c1721c30799ac977d93ab7ffb6892347 100644 (file)
@@ -936,7 +936,7 @@ private:
     State.NextToken = State.NextToken->Next;
 
     if (!Newline && Style.AlwaysBreakBeforeMultilineStrings &&
-        Current.is(tok::string_literal))
+        Current.is(tok::string_literal) && Current.CanBreakBefore)
       return 0;
 
     return breakProtrudingToken(Current, State, DryRun);
index 3a3164c0f48f6d56875857240cb02bd463059d8c..ba78995eb519f3ef01efee15af3f9615566ff976 100644 (file)
@@ -5167,6 +5167,11 @@ TEST_F(FormatTest, BreakStringLiterals) {
                    "aaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa "
                    "aaaaaaaaaaaaaaaaaaaaaa\");",
                    getGoogleStyle()));
+  EXPECT_EQ("llvm::outs() << \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \"\n"
+            "                \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\";",
+            format("llvm::outs() << "
+                   "\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa"
+                   "aaaaaaaaaaaaaaaaaaa\";"));
 
   FormatStyle AlignLeft = getLLVMStyleWithColumns(12);
   AlignLeft.AlignEscapedNewlinesLeft = true;