diff options
Diffstat (limited to 'lib/Rewrite/HTMLRewrite.cpp')
-rw-r--r-- | lib/Rewrite/HTMLRewrite.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/Rewrite/HTMLRewrite.cpp b/lib/Rewrite/HTMLRewrite.cpp index b886bec38b..bb4ae86261 100644 --- a/lib/Rewrite/HTMLRewrite.cpp +++ b/lib/Rewrite/HTMLRewrite.cpp @@ -46,6 +46,32 @@ void html::EscapeText(Rewriter& R, unsigned FileID, bool EscapeSpaces) { } } +std::string html::EscapeText(const std::string& s, bool EscapeSpaces) { + + unsigned len = s.size(); + std::ostringstream os; + + for (unsigned i = 0 ; i < len; ++i) { + + char c = s[i]; + + switch (c) { + default: + os << c; break; + + case ' ': + if (EscapeSpaces) os << " "; + break; + + case '<': os << "<"; break; + case '>': os << ">"; break; + case '&': os << "&"; break; + } + } + + return os.str(); +} + static void AddLineNumber(Rewriter& R, unsigned LineNo, SourceLocation B, SourceLocation E) { |