summaryrefslogtreecommitdiffstats
path: root/clang/lib/Format/BreakableToken.cpp
diff options
context:
space:
mode:
authorAlexander Kornienko <alexfh@google.com>2013-06-19 14:22:47 +0000
committerAlexander Kornienko <alexfh@google.com>2013-06-19 14:22:47 +0000
commit7285207486d19a02ebbec9f75268f30479c55801 (patch)
tree277ac4b7116a781d3f9f427015b02f965f1e5418 /clang/lib/Format/BreakableToken.cpp
parentdac35c24c0f079ba9d764869e04797bc869dcbcf (diff)
downloadbcm5719-llvm-7285207486d19a02ebbec9f75268f30479c55801.tar.gz
bcm5719-llvm-7285207486d19a02ebbec9f75268f30479c55801.zip
Split long strings on word boundaries.
Summary: Split strings at word boundaries, when there are no spaces and slashes. Reviewers: klimek CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1003 llvm-svn: 184304
Diffstat (limited to 'clang/lib/Format/BreakableToken.cpp')
-rw-r--r--clang/lib/Format/BreakableToken.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/Format/BreakableToken.cpp b/clang/lib/Format/BreakableToken.cpp
index 48c1dee5bd7..2b559cf8c3a 100644
--- a/clang/lib/Format/BreakableToken.cpp
+++ b/clang/lib/Format/BreakableToken.cpp
@@ -77,6 +77,7 @@ BreakableToken::Split getStringSplit(StringRef Text,
encoding::getCodePointCount(Text, Encoding) - 1);
StringRef::size_type SpaceOffset = 0;
StringRef::size_type SlashOffset = 0;
+ StringRef::size_type WordStartOffset = 0;
StringRef::size_type SplitPoint = 0;
for (unsigned Chars = 0;;) {
unsigned Advance;
@@ -95,6 +96,8 @@ BreakableToken::Split getStringSplit(StringRef Text,
SpaceOffset = SplitPoint;
if (Text[0] == '/')
SlashOffset = SplitPoint;
+ if (Text[0] != '\\' && !isAlphanumeric(Text[0]))
+ WordStartOffset = SplitPoint;
SplitPoint += Advance;
Text = Text.substr(Advance);
@@ -104,6 +107,8 @@ BreakableToken::Split getStringSplit(StringRef Text,
return BreakableToken::Split(SpaceOffset + 1, 0);
if (SlashOffset != 0)
return BreakableToken::Split(SlashOffset + 1, 0);
+ if (WordStartOffset != 0)
+ return BreakableToken::Split(WordStartOffset + 1, 0);
if (SplitPoint != 0)
return BreakableToken::Split(SplitPoint, 0);
return BreakableToken::Split(StringRef::npos, 0);
OpenPOWER on IntegriCloud