projects
/
fms.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
version 0.3.28
[fms.git]
/
src
/
unicode
/
utfconversion.cpp
diff --git
a/src/unicode/utfconversion.cpp
b/src/unicode/utfconversion.cpp
index
112ed17
..
5d7c835
100644
(file)
--- a/
src/unicode/utfconversion.cpp
+++ b/
src/unicode/utfconversion.cpp
@@
-3,7
+3,7
@@
namespace UTFConversion
\r
{
\r
\r
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
{
\r
if(utf8string.size()==0)
\r
{
\r
@@
-11,7
+11,7
@@
const bool FromUTF8(const std::vector<char> &utf8string, std::wstring &wcstring)
return true;
\r
}
\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
const UTF8 *sourcestart=reinterpret_cast<const UTF8 *>(&utf8string[0]);
\r
const UTF8 *sourceend=sourcestart+utf8string.size();
\r
@@
-40,7
+40,7
@@
const bool FromUTF8(const std::vector<char> &utf8string, std::wstring &wcstring)
\r
if(rval!=conversionOK)
\r
{
\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
\r
wcstring.assign(dest.begin(),dest.end()-(destend-deststart));
\r
@@
-48,7
+48,7
@@
const bool FromUTF8(const std::vector<char> &utf8string, std::wstring &wcstring)
}
\r
else
\r
{
\r
}
\r
else
\r
{
\r
- return false;
\r
+ return false;
\r
}
\r
\r
return true;
\r
}
\r
\r
return true;
\r
@@
-57,7
+57,15
@@
const bool FromUTF8(const std::vector<char> &utf8string, std::wstring &wcstring)
const bool FromUTF8(const std::string &utf8string, std::wstring &wcstring)
\r
{
\r
\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
\r
}
\r
\r
@@
-69,11
+77,11
@@
const bool ToUTF8(const std::wstring &wcstring, std::string &utf8string)
return true;
\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
\r
- if(sizeof(
wchar_t
)==2)
\r
+ if(sizeof(
std::wstring::value_type
)==2)
\r
{
\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
const UTF16 *sourcestart=reinterpret_cast<const UTF16 *>(&source[0]);
\r
const UTF16 *sourceend=sourcestart+source.size();
\r
@@
-85,15
+93,15
@@
const bool ToUTF8(const std::wstring &wcstring, std::string &utf8string)
\r
if(rval!=conversionOK)
\r
{
\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
}
\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
{
\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
const UTF32 *sourcestart=reinterpret_cast<const UTF32 *>(&source[0]);
\r
const UTF32 *sourceend=sourcestart+source.size();
\r
@@
-105,7
+113,7
@@
const bool ToUTF8(const std::wstring &wcstring, std::string &utf8string)
\r
if(rval!=conversionOK)
\r
{
\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
utf8string.assign(dest.begin(),dest.end()-(destend-deststart));
\r