Added configurable selectionbox width. Min width = 1, Max = 5
[oweals/minetest.git] / src / gettext.h
index 862274a31d20542a2b88241d28a36f3b9f399721..81510aed6578ccf58813787dd0fa5ff087c7da2d 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)
 {
@@ -56,7 +60,7 @@ inline wchar_t* chartowchar_t(const char *str)
        int nResult = MultiByteToWideChar( CP_UTF8, 0, (LPCSTR) str, -1, 0, 0 );
        if( nResult == 0 )
        {
-               fprintf( stderr, "error: MultiByteToWideChar returned null\n" );
+               errorstream<<"gettext: MultiByteToWideChar returned null"<<std::endl;
        }
        else
        {
@@ -64,9 +68,12 @@ inline wchar_t* chartowchar_t(const char *str)
                MultiByteToWideChar( CP_UTF8, 0, (LPCSTR) str, -1, (WCHAR *) nstr, nResult );
        }
 #else
-       size_t l = strlen(str)+1;
-       nstr = new wchar_t[l];
-       mbstowcs(nstr, str, l);
+       size_t l = strlen(str);
+       nstr = new wchar_t[l+1];
+
+       std::wstring intermediate = narrow_to_wide(str);
+       memset(nstr, 0, (l+1)*sizeof(wchar_t));
+       memcpy(nstr, intermediate.c_str(), l*sizeof(wchar_t));
 #endif
 
        return nstr;