diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2017-08-23 01:17:59 +0200 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2017-08-24 08:42:45 +0200 |
commit | 71df5dde6d99da73eaea1989a309ffe2a5c7689d (patch) | |
tree | 557f70865ef6d0dce61df41d39e284d8d1adb942 | |
parent | e5565891af5858965a65366ecb7f791abc988931 (diff) | |
download | rneovim-71df5dde6d99da73eaea1989a309ffe2a5c7689d.tar.gz rneovim-71df5dde6d99da73eaea1989a309ffe2a5c7689d.tar.bz2 rneovim-71df5dde6d99da73eaea1989a309ffe2a5c7689d.zip |
win: wmain(): use utf16_to_utf8() #7060
-rw-r--r-- | src/nvim/main.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/src/nvim/main.c b/src/nvim/main.c index af614762ac..53a1342b2a 100644 --- a/src/nvim/main.c +++ b/src/nvim/main.c @@ -220,24 +220,18 @@ void early_init(void) #ifdef MAKE_LIB int nvim_main(int argc, char **argv) -#elif defined WIN32 -// don't use codepage encoded arguments. see #7060 -int wmain(int argc, wchar_t **argv_w) +#elif defined(WIN32) +int wmain(int argc, wchar_t **argv_w) // multibyte args on Windows. #7060 #else int main(int argc, char **argv) #endif { #ifdef WIN32 char *argv[argc]; - - for (size_t i = 0; i < (size_t)argc; i++) { - // get required buffer size - size_t dest_size = (size_t)WideCharToMultiByte( - CP_UTF8, 0, argv_w[i], -1, NULL, 0, NULL, NULL); - char *buf = (char *)xmallocz(dest_size); - // convert from utf16 (widechar) utf8 (multibyte) - WideCharToMultiByte(CP_UTF8, 0, argv_w[i], -1, buf, (int)dest_size, - NULL, NULL); + for (int i = 0; i < argc; i++) { + char *buf = NULL; + utf16_to_utf8(argv_w[i], &buf); + assert(buf); argv[i] = buf; } #endif |