diff options
author | Alexander Kornienko <alexfh@google.com> | 2013-06-19 14:22:47 +0000 |
---|---|---|
committer | Alexander Kornienko <alexfh@google.com> | 2013-06-19 14:22:47 +0000 |
commit | 7285207486d19a02ebbec9f75268f30479c55801 (patch) | |
tree | 277ac4b7116a781d3f9f427015b02f965f1e5418 /clang/lib/Format/BreakableToken.cpp | |
parent | dac35c24c0f079ba9d764869e04797bc869dcbcf (diff) | |
download | bcm5719-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.cpp | 5 |
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); |