summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorK.Takata <kentkt@csc.jp>2021-06-08 18:32:36 +0200
committerBram Moolenaar <Bram@vim.org>2021-06-08 18:32:36 +0200
commitdc73b4b75de0134db3dffa6e631daf6cae817545 (patch)
tree455821f9fb392a7a07834dcab1a69d3d661b83b8
parentc41badb748bbaa78cbadfcda9ca965e8a283fb9b (diff)
patch 8.2.2962: MS-Windows command line arguments have wrong encodingv8.2.2962
Problem: MS-Windows command line arguments have wrong encoding. Solution: Always use utf-8 in get_cmd_argsW(). (Ken Takata, closes #8347)
-rw-r--r--src/os_win32.c8
-rw-r--r--src/version.c2
2 files changed, 6 insertions, 4 deletions
diff --git a/src/os_win32.c b/src/os_win32.c
index 874a2c69d8..a966c53495 100644
--- 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
index bbf13dddf5..08cb9c98e8 100644
--- 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,