--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/searchengine/oss/cl/clucene/src/clucene/highlighter/SimpleHTMLEncoder.cpp Fri Jun 11 14:43:47 2010 +0300
@@ -0,0 +1,64 @@
+#include "CLucene/StdHeader.h"
+#include "SimpleHTMLEncoder.h"
+CL_NS_DEF2(search,highlight)
+
+SimpleHTMLEncoder::SimpleHTMLEncoder(void)
+{
+}
+
+SimpleHTMLEncoder::~SimpleHTMLEncoder(void)
+{
+}
+
+TCHAR* SimpleHTMLEncoder::encodeText(TCHAR* originalText)
+{
+ return htmlEncode(originalText);
+}
+
+TCHAR* SimpleHTMLEncoder::htmlEncode(TCHAR* plainText)
+{
+ size_t plainTextLen = _tcslen(plainText);
+ if (plainText == NULL || plainTextLen == 0)
+ {
+ return STRDUP_TtoT(_T(""));
+ }
+
+ CL_NS(util)::StringBuffer result(plainTextLen);
+
+ for (int32_t index=0; index<plainTextLen; index++)
+ {
+ TCHAR ch = plainText[index];
+
+ switch (ch)
+ {
+ case '"':
+ result.append(_T("""));
+ break;
+
+ case '&':
+ result.append(_T("&"));
+ break;
+
+ case '<':
+ result.append(_T("<"));
+ break;
+
+ case '>':
+ result.append(_T(">"));
+ break;
+
+ default:
+ if (ch < 128)
+ result.appendChar(ch);
+ else{
+ result.append(_T("&#"));
+ result.appendInt(ch);
+ result.append(_T(";"));
+ }
+ }
+ }
+
+ return result.toString();
+}
+
+CL_NS_END2