aboutsummaryrefslogtreecommitdiff
path: root/lib/Rewrite/HTMLRewrite.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-04-16 04:33:23 +0000
committerChris Lattner <sabre@nondot.org>2008-04-16 04:33:23 +0000
commit735271479ac57c27f744806859efd5b001dea248 (patch)
treed7a958adca406e76f17dddd9b4848c3f46329d9b /lib/Rewrite/HTMLRewrite.cpp
parent97b7f26a92d87e514530a5b652460190ce48c974 (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.cpp68
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, "&nbsp;", 6);
- }
- break;
+ default: break;
+
+ case ' ':
+ if (EscapeSpaces)
+ RB.ReplaceText(FilePos, 1, "&nbsp;", 6);
+ break;
- case '\t': {
- if (!ReplaceTabs)
- break;
-
- SourceLocation Loc = SourceLocation::getFileLoc(FileID, FilePos);
-
- if (EscapeSpaces)
- R.ReplaceText(Loc, 1, "&nbsp;&nbsp;&nbsp;&nbsp;", 6*4);
- else
- R.ReplaceText(Loc, 1, " ", 4);
-
- break;
- }
-
- case '<': {
- SourceLocation Loc = SourceLocation::getFileLoc(FileID, FilePos);
- R.ReplaceText(Loc, 1, "&lt;", 4);
- break;
- }
-
- case '>': {
- SourceLocation Loc = SourceLocation::getFileLoc(FileID, FilePos);
- R.ReplaceText(Loc, 1, "&gt;", 4);
+ case '\t':
+ if (!ReplaceTabs)
break;
- }
-
- case '&': {
- SourceLocation Loc = SourceLocation::getFileLoc(FileID, FilePos);
- R.ReplaceText(Loc, 1, "&amp;", 5);
- break;
- }
+ if (EscapeSpaces)
+ RB.ReplaceText(FilePos, 1, "&nbsp;&nbsp;&nbsp;&nbsp;", 6*4);
+ else
+ RB.ReplaceText(FilePos, 1, " ", 4);
+ break;
+
+ case '<':
+ RB.ReplaceText(FilePos, 1, "&lt;", 4);
+ break;
+
+ case '>':
+ RB.ReplaceText(FilePos, 1, "&gt;", 4);
+ break;
+
+ case '&':
+ RB.ReplaceText(FilePos, 1, "&amp;", 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 << "&nbsp;";
+ for (unsigned i = 0; i < 4; ++i)
+ os << "&nbsp;";
else os << c;
break;