2
* Copyright 2002-2004 The Apache Software Foundation
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
8
* http://www.apache.org/licenses/LICENSE-2.0
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
17
#include "CLucene/_ApiHeader.h"
18
#include "SimpleHTMLEncoder.h"
19
#include "Formatter.h"
20
#include "CLucene/util/StringBuffer.h"
22
CL_NS_DEF2(search,highlight)
24
SimpleHTMLEncoder::SimpleHTMLEncoder(void)
28
SimpleHTMLEncoder::~SimpleHTMLEncoder(void)
32
TCHAR* SimpleHTMLEncoder::encodeText(TCHAR* originalText)
34
return htmlEncode(originalText);
37
TCHAR* SimpleHTMLEncoder::htmlEncode(TCHAR* plainText)
39
size_t plainTextLen = _tcslen(plainText);
40
if (plainText == NULL || plainTextLen == 0)
42
return STRDUP_TtoT(_T(""));
45
CL_NS(util)::StringBuffer result(plainTextLen);
47
for (int32_t index=0; index<plainTextLen; index++)
49
TCHAR ch = plainText[index];
54
result.append(_T("""));
58
result.append(_T("&"));
62
result.append(_T("<"));
66
result.append(_T(">"));
71
result.appendChar(ch);
73
result.append(_T("&#"));
75
result.append(_T(";"));
80
return result.toString();