diff options
-rw-r--r-- | lib/Format/Format.cpp | 4 | ||||
-rw-r--r-- | unittests/Format/FormatTest.cpp | 8 |
2 files changed, 10 insertions, 2 deletions
diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp index f7702cbd4f..2b82410cf8 100644 --- a/lib/Format/Format.cpp +++ b/lib/Format/Format.cpp @@ -769,10 +769,10 @@ private: StringRef::size_type getSplitPoint(StringRef Text, StringRef::size_type Offset) { StringRef::size_type SpaceOffset = Text.rfind(' ', Offset); - if (SpaceOffset != StringRef::npos) + if (SpaceOffset != StringRef::npos && SpaceOffset != 0) return SpaceOffset; StringRef::size_type SlashOffset = Text.rfind('/', Offset); - if (SlashOffset != StringRef::npos) + if (SlashOffset != StringRef::npos && SlashOffset != 0) return SlashOffset; if (Offset > 1) // Do not split at 0. diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 46eb1bcfdf..eafc4c8512 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -3043,6 +3043,14 @@ TEST_F(FormatTest, BreakStringLiterals) { EXPECT_EQ("\"some\"\n" "\" text\"", format("\"some text\"", getLLVMStyleWithColumns(6))); + EXPECT_EQ("\"some\"\n" + "\" tex\"\n" + "\" and\"", + format("\"some tex and\"", getLLVMStyleWithColumns(6))); + EXPECT_EQ("\"some\"\n" + "\"/tex\"\n" + "\"/and\"", + format("\"some/tex/and\"", getLLVMStyleWithColumns(6))); EXPECT_EQ("variable =\n" " \"long string \"\n" |