namespace UTFConversion\r
{\r
\r
-const bool FromUTF8(const std::vector<char> &utf8string, std::wstring &wcstring)\r
+const bool FromUTF8(const std::vector<std::string::value_type> &utf8string, std::wstring &wcstring)\r
{\r
if(utf8string.size()==0)\r
{\r
return true;\r
}\r
\r
- std::vector<wchar_t> dest(utf8string.size(),0); // dest will never be bigger than the input but could be smaller\r
+ std::vector<std::wstring::value_type> dest(utf8string.size(),0); // dest will never be bigger than the input but could be smaller\r
\r
const UTF8 *sourcestart=reinterpret_cast<const UTF8 *>(&utf8string[0]);\r
const UTF8 *sourceend=sourcestart+utf8string.size();\r
\r
if(rval!=conversionOK)\r
{\r
- return false; \r
+ return false;\r
}\r
\r
wcstring.assign(dest.begin(),dest.end()-(destend-deststart));\r
}\r
else\r
{\r
- return false; \r
+ return false;\r
}\r
\r
return true;\r
const bool FromUTF8(const std::string &utf8string, std::wstring &wcstring)\r
{\r
\r
- return FromUTF8(std::vector<char>(utf8string.begin(),utf8string.end()),wcstring);\r
+ if(utf8string.size()>0)\r
+ {\r
+ return FromUTF8(std::vector<std::string::value_type>(utf8string.begin(),utf8string.end()),wcstring);\r
+ }\r
+ else\r
+ {\r
+ wcstring.assign(L"");\r
+ return true;\r
+ }\r
\r
}\r
\r
return true;\r
}\r
\r
- std::vector<wchar_t> source(wcstring.begin(),wcstring.end());\r
+ std::vector<std::wstring::value_type> source(wcstring.begin(),wcstring.end());\r
\r
- if(sizeof(wchar_t)==2)\r
+ if(sizeof(std::wstring::value_type)==2)\r
{\r
- std::vector<char> dest(wcstring.size()*2,0);\r
+ std::vector<std::string::value_type> dest(wcstring.size()*2,0);\r
\r
const UTF16 *sourcestart=reinterpret_cast<const UTF16 *>(&source[0]);\r
const UTF16 *sourceend=sourcestart+source.size();\r
\r
if(rval!=conversionOK)\r
{\r
- return false; \r
+ return false;\r
}\r
\r
utf8string.assign(dest.begin(),dest.end()-(destend-deststart));\r
\r
}\r
- else if(sizeof(wchar_t)==4)\r
+ else if(sizeof(std::wstring::value_type)==4)\r
{\r
- std::vector<char> dest(wcstring.size()*4,0);\r
+ std::vector<std::string::value_type> dest(wcstring.size()*4,0);\r
\r
const UTF32 *sourcestart=reinterpret_cast<const UTF32 *>(&source[0]);\r
const UTF32 *sourceend=sourcestart+source.size();\r
\r
if(rval!=conversionOK)\r
{\r
- return false; \r
+ return false;\r
}\r
\r
utf8string.assign(dest.begin(),dest.end()-(destend-deststart));\r