From b17f6a6d0168eedb1356c8c707001039752af162 Mon Sep 17 00:00:00 2001 From: kelson42 Date: Mon, 27 Feb 2012 17:57:26 +0000 Subject: [PATCH] FIXED: Kiwix-serve sporadic invisible search box with non-latin contents --- src/common/regexTools.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/common/regexTools.cpp b/src/common/regexTools.cpp index f3d52d2af..225a1d392 100644 --- a/src/common/regexTools.cpp +++ b/src/common/regexTools.cpp @@ -18,7 +18,6 @@ */ #include "regexTools.h" -#include std::map regexCache; @@ -57,12 +56,16 @@ bool matchRegex(const std::string &content, const std::string ®ex) { void appendToFirstOccurence(std::string &content, const std::string regex, const std::string &replacement) { ucnv_setDefaultName("UTF-8"); UnicodeString ucontent = UnicodeString(content.c_str()); + UnicodeString ureplacement = UnicodeString(replacement.c_str()); RegexMatcher *matcher = buildRegex(regex); matcher->reset(ucontent); if (matcher->find()) { UErrorCode status = U_ZERO_ERROR; - content.insert(matcher->end(status), replacement); + ucontent.insert(matcher->end(status), ureplacement); + std::string tmp; + ucontent.toUTF8String(tmp); + content=tmp; } }