From 7c0c1635aba8f9540d4d964b2c17c66863496a55 Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Sat, 5 Apr 2014 16:51:06 -0700 Subject: [PATCH] Use the UTF-8 version of Expat --- CMakeLists.txt | 3 +++ .../Plasma/FeatureLib/pfLocalizationMgr/CMakeLists.txt | 5 +++-- .../pfLocalizationMgr/pfLocalizationDataMgr.cpp | 8 ++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c5f4de9f..256823a7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,6 +63,9 @@ if(CURL_IS_STATIC) add_definitions(-DCURL_STATICLIB) endif(CURL_IS_STATIC) +# Same story for expat +option(EXPAT_IS_STATIC "Using the static version of libexpat" ON) + option(PLASMA_EXTERNAL_RELEASE "Is this release intended for the general public?" OFF) if(PLASMA_EXTERNAL_RELEASE) add_definitions(-DPLASMA_EXTERNAL_RELEASE) diff --git a/Sources/Plasma/FeatureLib/pfLocalizationMgr/CMakeLists.txt b/Sources/Plasma/FeatureLib/pfLocalizationMgr/CMakeLists.txt index f35f9b47..a810b69c 100644 --- a/Sources/Plasma/FeatureLib/pfLocalizationMgr/CMakeLists.txt +++ b/Sources/Plasma/FeatureLib/pfLocalizationMgr/CMakeLists.txt @@ -3,9 +3,10 @@ include_directories(../../PubUtilLib) include_directories(${EXPAT_INCLUDE_DIR}) -add_definitions(-DXML_UNICODE_WCHAR_T) -add_definitions(-DXML_STATIC) add_definitions(-DWIN32) +if(EXPAT_IS_STATIC) + add_definitions(-DXML_STATIC) +endif() set(pfLocalizationMgr_SOURCES pfLocalizationDataMgr.cpp diff --git a/Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationDataMgr.cpp b/Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationDataMgr.cpp index d47d19e8..441151e9 100644 --- a/Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationDataMgr.cpp +++ b/Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationDataMgr.cpp @@ -171,12 +171,12 @@ XML_Memory_Handling_Suite gHeapAllocator = { void XMLCALL LocalizationXMLFile::StartTag(void *userData, const XML_Char *element, const XML_Char **attributes) { - plString wElement = plString::FromWchar(element); + plString wElement = element; LocalizationXMLFile *file = (LocalizationXMLFile*)userData; std::map wAttributes; for (int i = 0; attributes[i]; i += 2) - wAttributes[plString::FromWchar(attributes[i])] = plString::FromWchar(attributes[i+1]); + wAttributes[attributes[i]] = attributes[i+1]; LocalizationXMLFile::tagInfo parentTag; if (!file->fTagStack.empty()) @@ -208,7 +208,7 @@ void XMLCALL LocalizationXMLFile::StartTag(void *userData, const XML_Char *eleme void XMLCALL LocalizationXMLFile::EndTag(void *userData, const XML_Char *element) { - plString wElement = plString::FromWchar(element); + plString wElement = element; LocalizationXMLFile *file = (LocalizationXMLFile*)userData; if (file->fSkipDepth != -1) // we're currently skipping @@ -243,7 +243,7 @@ void XMLCALL LocalizationXMLFile::HandleData(void *userData, const XML_Char *dat // This gets all data between tags, including indentation and newlines // so we'll have to ignore data when we aren't expecting it (not in a translation tag) - plString contents = plString::FromWchar(data, stringLength); + plString contents = plString::FromUtf8(data, stringLength); // we must be in a translation tag since that's the only tag that doesn't ignore the contents file->fData[file->fCurrentAge][file->fCurrentSet][file->fCurrentElement][file->fCurrentTranslation] += contents;