changeset 15744:2958a8e51a67 v8.1.0879

patch 8.1.0879: MS-Windows: temp name encoding can be wrong commit https://github.com/vim/vim/commit/0036201a1a096913840d3df8ff08eb58eaae90a6 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Feb 8 12:21:30 2019 +0100 patch 8.1.0879: MS-Windows: temp name encoding can be wrong Problem: MS-Windows: temp name encoding can be wrong. Solution: Convert from active code page to 'encoding'. (Ken Takata, closes #3520, closes #1698)
author Bram Moolenaar <Bram@vim.org>
date Fri, 08 Feb 2019 12:30:07 +0100
parents 4dfd751fda99
children 655ee4b0a5cc
files src/fileio.c src/version.c
diffstat 2 files changed, 20 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -7470,6 +7470,24 @@ vim_tempname(
 	for (p = retval; *p; ++p)
 	    if (*p == '\\')
 		*p = '/';
+
+#if defined(FEAT_MBYTE) && defined(WIN3264)
+    if (enc_utf8)
+    {
+	int	len;
+	char_u  *pp = NULL;
+
+	// Convert from active codepage to UTF-8 since mch_call_shell()
+	// converts command-line to wide string from encoding.
+	acp_to_enc(retval, (int)STRLEN(retval), &pp, &len);
+	if (pp != NULL)
+	{
+	    vim_free(retval);
+	    return pp;
+	}
+    }
+#endif
+
     return retval;
 
 # else /* WIN3264 */
--- a/src/version.c
+++ b/src/version.c
@@ -784,6 +784,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    879,
+/**/
     878,
 /**/
     877,