Use narrow_to_wide in gettext instead of os dependent conversion fct 1204/head
authorsapier <Sapier at GMX dot net>
Sun, 6 Apr 2014 08:39:32 +0000 (10:39 +0200)
committersapier <Sapier at GMX dot net>
Sat, 19 Apr 2014 09:33:57 +0000 (11:33 +0200)
src/gettext.h

index 02aa6979d5d2f06139a10e9a402c420b3c0cfc21..3299f5b25a999ed5e7e7ced10eb7efe168ff0254 100644 (file)
@@ -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;