mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2025-01-19 03:57:14 +01:00
4a6bfc086c
Switched to POCO library for unified platform/library interface. Deprecated the external module API. It was creating more problems than solving. Removed most built-in libraries in favor of system libraries for easier maintenance. Cleaned and secured code with help from static analyzers.
65 lines
923 B
C++
65 lines
923 B
C++
//
|
|
// XMLString.cpp
|
|
//
|
|
// Library: XML
|
|
// Package: XML
|
|
// Module: XMLString
|
|
//
|
|
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
|
|
// and Contributors.
|
|
//
|
|
// SPDX-License-Identifier: BSL-1.0
|
|
//
|
|
|
|
|
|
#include "Poco/XML/XMLString.h"
|
|
|
|
|
|
#if defined(XML_UNICODE_WCHAR_T)
|
|
#include <stdlib.h>
|
|
#endif
|
|
|
|
|
|
namespace Poco {
|
|
namespace XML {
|
|
|
|
|
|
#if defined(XML_UNICODE_WCHAR_T)
|
|
|
|
|
|
std::string fromXMLString(const XMLString& str)
|
|
{
|
|
std::string result;
|
|
result.reserve(str.size());
|
|
|
|
for (auto xc: str)
|
|
{
|
|
char c;
|
|
wctomb(&c, xc);
|
|
result += c;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
|
|
XMLString toXMLString(const std::string& str)
|
|
{
|
|
XMLString result;
|
|
result.reserve(str.size());
|
|
|
|
for (std::string::const_iterator it = str.begin(); it != str.end();)
|
|
{
|
|
wchar_t c;
|
|
int n = mbtowc(&c, &*it, MB_CUR_MAX);
|
|
result += c;
|
|
it += (n > 0 ? n : 1);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
|
|
#endif // XML_UNICODE_WCHAR_T
|
|
|
|
|
|
} } // namespace Poco::XML
|