# HG changeset patch # User Bram Moolenaar # Date 1623170705 -7200 # Node ID c91b3e5b78965aa87ac030e550d6d597d69b3a9f # Parent dba15255d0a4f03fa07b6b2c25de20640b4efe44 patch 8.2.2962: MS-Windows command line arguments have wrong encoding Commit: https://github.com/vim/vim/commit/dc73b4b75de0134db3dffa6e631daf6cae817545 Author: K.Takata Date: Tue Jun 8 18:32:36 2021 +0200 patch 8.2.2962: MS-Windows command line arguments have wrong encoding Problem: MS-Windows command line arguments have wrong encoding. Solution: Always use utf-8 in get_cmd_argsW(). (Ken Takata, closes https://github.com/vim/vim/issues/8347) diff --git a/src/os_win32.c b/src/os_win32.c --- a/src/os_win32.c +++ b/src/os_win32.c @@ -7558,7 +7558,7 @@ myresetstkoflw(void) /* - * The command line arguments in UCS2 + * The command line arguments in UTF-16 */ static int nArgsW = 0; static LPWSTR *ArglistW = NULL; @@ -7601,8 +7601,8 @@ get_cmd_argsW(char ***argvp) { int len; - // Convert each Unicode argument to the current codepage. - WideCharToMultiByte_alloc(GetACP(), 0, + // Convert each Unicode argument to UTF-8. + WideCharToMultiByte_alloc(CP_UTF8, 0, ArglistW[i], (int)wcslen(ArglistW[i]) + 1, (LPSTR *)&argv[i], &len, 0, 0); if (argv[i] == NULL) @@ -7678,7 +7678,7 @@ set_alist_count(void) /* * Fix the encoding of the command line arguments. Invoked when 'encoding' - * has been changed while starting up. Use the UCS-2 command line arguments + * has been changed while starting up. Use the UTF-16 command line arguments * and convert them to 'encoding'. */ void diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2962, +/**/ 2961, /**/ 2960,