Files
poco/XML/src/XMLString.cpp
Roger Meier b0581433a7 LICENSE: add info about SPDX-License-Identifier usage and use it
fix: remove executable flag and change back to 100644 (was 100755)

Signed-off-by: Roger Meier <r.meier@siemens.com>
2014-05-14 08:38:09 +02:00

67 lines
1.0 KiB
C++

//
// XMLString.cpp
//
// $Id: //poco/1.4/XML/src/XMLString.cpp#1 $
//
// 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 (XMLString::const_iterator it = str.begin(); it != str.end(); ++it)
{
char c;
wctomb(&c, *it);
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