Add html::EscapeText for std::string; use this function to escape text in message bubbles.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48884 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Rewrite/HTMLRewrite.cpp b/lib/Rewrite/HTMLRewrite.cpp
index b886bec..bb4ae86 100644
--- a/lib/Rewrite/HTMLRewrite.cpp
+++ b/lib/Rewrite/HTMLRewrite.cpp
@@ -46,6 +46,32 @@
   }
 }
 
+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 << "&#32;";
+        break;
+        
+        case '<': os << "&lt;"; break;
+        case '>': os << "&gt;"; break;
+        case '&': os << "&amp;"; break;
+    }
+  }
+  
+  return os.str();
+}
+
 static void AddLineNumber(Rewriter& R, unsigned LineNo,
                           SourceLocation B, SourceLocation E) {