From: Craig Robbins Date: Mon, 2 Mar 2015 03:16:01 +0000 (+1000) Subject: Fix narrow_to_wide_c (ANDROID) X-Git-Tag: 0.4.17~127^2^2~3 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=a740a48f62261073190a92e9b60256da13817923;p=oweals%2Fminetest.git Fix narrow_to_wide_c (ANDROID) * Ensure converted string is NUL terminated * Restore logic to that used prior to 9e2a9b5 --- diff --git a/src/util/string.cpp b/src/util/string.cpp index de669b473..a29bce94b 100644 --- a/src/util/string.cpp +++ b/src/util/string.cpp @@ -78,16 +78,18 @@ const wchar_t *narrow_to_wide_c(const char *mbs) size_t mbl = strlen(mbs); wchar_t *wcs = new wchar_t[mbl + 1]; - for (size_t i = 0; i < mbl; i++) { + size_t i, dest_i = 0; + for (i = 0; i < mbl; i++) { if (((unsigned char) mbs[i] > 31) && ((unsigned char) mbs[i] < 127)) { - wcs[i] = wide_chars[(unsigned char) mbs[i] - 32]; + wcs[dest_i++] = wide_chars[(unsigned char) mbs[i] - 32]; } //handle newline else if (mbs[i] == '\n') { - wcs[i] = L'\n'; + wcs[dest_i++] = L'\n'; } } + wcs[dest_i] = '\0'; return wcs; }