diff options
author | Chris Lattner <sabre@nondot.org> | 2008-04-16 04:33:23 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-04-16 04:33:23 +0000 |
commit | 735271479ac57c27f744806859efd5b001dea248 (patch) | |
tree | d7a958adca406e76f17dddd9b4848c3f46329d9b /lib/Rewrite/HTMLRewrite.cpp | |
parent | 97b7f26a92d87e514530a5b652460190ce48c974 (diff) |
In html::EscapeText, instead of going through the rewriter with
a SourceLocation to get a RewriteBuffer, poke the RewriteBuffer
with an offset directly. THis is no faster, but results in
cleaner code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49774 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Rewrite/HTMLRewrite.cpp')
-rw-r--r-- | lib/Rewrite/HTMLRewrite.cpp | 68 |
1 files changed, 29 insertions, 39 deletions
diff --git a/lib/Rewrite/HTMLRewrite.cpp b/lib/Rewrite/HTMLRewrite.cpp index fc1627af02..b4dbb44431 100644 --- a/lib/Rewrite/HTMLRewrite.cpp +++ b/lib/Rewrite/HTMLRewrite.cpp @@ -30,49 +30,38 @@ void html::EscapeText(Rewriter& R, unsigned FileID, assert (C <= FileEnd); + RewriteBuffer &RB = R.getEditBuffer(FileID); + for (unsigned FilePos = 0; C != FileEnd ; ++C, ++FilePos) { switch (*C) { - default: break; - - case ' ': - if (EscapeSpaces) { - SourceLocation Loc = SourceLocation::getFileLoc(FileID, FilePos); - R.ReplaceText(Loc, 1, " ", 6); - } - break; + default: break; + + case ' ': + if (EscapeSpaces) + RB.ReplaceText(FilePos, 1, " ", 6); + break; - case '\t': { - if (!ReplaceTabs) - break; - - SourceLocation Loc = SourceLocation::getFileLoc(FileID, FilePos); - - if (EscapeSpaces) - R.ReplaceText(Loc, 1, " ", 6*4); - else - R.ReplaceText(Loc, 1, " ", 4); - - break; - } - - case '<': { - SourceLocation Loc = SourceLocation::getFileLoc(FileID, FilePos); - R.ReplaceText(Loc, 1, "<", 4); - break; - } - - case '>': { - SourceLocation Loc = SourceLocation::getFileLoc(FileID, FilePos); - R.ReplaceText(Loc, 1, ">", 4); + case '\t': + if (!ReplaceTabs) break; - } - - case '&': { - SourceLocation Loc = SourceLocation::getFileLoc(FileID, FilePos); - R.ReplaceText(Loc, 1, "&", 5); - break; - } + if (EscapeSpaces) + RB.ReplaceText(FilePos, 1, " ", 6*4); + else + RB.ReplaceText(FilePos, 1, " ", 4); + break; + + case '<': + RB.ReplaceText(FilePos, 1, "<", 4); + break; + + case '>': + RB.ReplaceText(FilePos, 1, ">", 4); + break; + + case '&': + RB.ReplaceText(FilePos, 1, "&", 5); + break; } } } @@ -98,7 +87,8 @@ std::string html::EscapeText(const std::string& s, bool EscapeSpaces, case '\t': if (ReplaceTabs) - for (unsigned i = 0; i < 4; ++i) os << " "; + for (unsigned i = 0; i < 4; ++i) + os << " "; else os << c; break; |