From: Andreas Zwinkau Date: Tue, 3 Jul 2012 21:13:15 +0000 (+0200) Subject: Fix wctomb use X-Git-Url: http://81.2.79.47:8989/gitweb/?a=commitdiff_plain;h=28e7443f9bcc1fac186394847c1b788e39daed5e;p=zefram%2Fminetest%2Fminetest_engine.git Fix wctomb use wctomb(NULL, _) returns "nonzero if the encoding has nontrivial shift state, or zero if the encoding is stateless." I assume the intentation was to get the size of the target buffer. Use MB_CUR_MAX for this. --- diff --git a/src/keycode.cpp b/src/keycode.cpp index c3c06bb7..df3ebc9e 100644 --- a/src/keycode.cpp +++ b/src/keycode.cpp @@ -293,8 +293,7 @@ KeyPress::KeyPress(const irr::SEvent::SKeyInput &in) if (valid_kcode(Key)) { m_name = KeyNames[Key]; } else { - size_t maxlen = wctomb(NULL, Char); - m_name.resize(maxlen+1, '\0'); + m_name.resize(MB_CUR_MAX+1, '\0'); int written = wctomb(&m_name[0], Char); assert (written >= 0 && "unexpected multibyte character"); }