diff --git a/src/gettext.h b/src/gettext.h index 02aa6979d..3299f5b25 100644 --- a/src/gettext.h +++ b/src/gettext.h @@ -48,6 +48,10 @@ void init_gettext(const char *path,std::string configured_language,int argc, cha void init_gettext(const char *path,std::string configured_language); #endif +extern std::wstring narrow_to_wide(const std::string& mbs); +#include "util/numeric.h" + + /******************************************************************************/ inline wchar_t* chartowchar_t(const char *str) { @@ -66,7 +70,10 @@ inline wchar_t* chartowchar_t(const char *str) #else size_t l = strlen(str)+1; nstr = new wchar_t[l]; - mbstowcs(nstr, str, l); + + std::wstring intermediate = narrow_to_wide(str); + memset(nstr,0,l); + memcpy(nstr,intermediate.c_str(),l*sizeof(wchar_t)); #endif return nstr;