diff options
Diffstat (limited to 'data/vim/patches/8.1.0895')
-rw-r--r-- | data/vim/patches/8.1.0895 | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0895 b/data/vim/patches/8.1.0895 new file mode 100644 index 000000000..5ede315d5 --- /dev/null +++ b/data/vim/patches/8.1.0895 @@ -0,0 +1,134 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.0895 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 8.1.0895 (after 8.1.0879) +Problem: MS-Windows: dealing with temp name encoding not quite right. +Solution: Use more wide functions. (Ken Takata, closes #3921) +Files: src/fileio.c + + +*** ../vim-8.1.0894/src/fileio.c 2019-02-08 14:41:27.007922657 +0100 +--- src/fileio.c 2019-02-10 23:25:09.355719242 +0100 +*************** +*** 7322,7327 **** +--- 7322,7329 ---- + { + #ifdef USE_TMPNAM + char_u itmp[L_tmpnam]; /* use tmpnam() */ ++ #elif defined(WIN3264) ++ WCHAR itmp[TEMPNAMELEN]; + #else + char_u itmp[TEMPNAMELEN]; + #endif +*************** +*** 7443,7493 **** + #else /* TEMPDIRNAMES */ + + # ifdef WIN3264 +! char szTempFile[_MAX_PATH + 1]; +! char buf4[4]; + char_u *retval; + char_u *p; + +! STRCPY(itmp, ""); +! if (GetTempPath(_MAX_PATH, szTempFile) == 0) + { +! szTempFile[0] = '.'; /* GetTempPath() failed, use current dir */ +! szTempFile[1] = NUL; + } +! strcpy(buf4, "VIM"); + buf4[2] = extra_char; /* make it "VIa", "VIb", etc. */ +! if (GetTempFileName(szTempFile, buf4, 0, (LPSTR)itmp) == 0) + return NULL; + if (!keep) +! /* GetTempFileName() will create the file, we don't want that */ +! (void)DeleteFile((LPSTR)itmp); + +! /* Backslashes in a temp file name cause problems when filtering with +! * "sh". NOTE: This also checks 'shellcmdflag' to help those people who +! * didn't set 'shellslash'. */ +! retval = vim_strsave(itmp); + if (*p_shcf == '-' || p_ssl) + for (p = retval; *p; ++p) + if (*p == '\\') + *p = '/'; +- +- #if 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 */ +--- 7445,7477 ---- + #else /* TEMPDIRNAMES */ + + # ifdef WIN3264 +! WCHAR wszTempFile[_MAX_PATH + 1]; +! WCHAR buf4[4]; + char_u *retval; + char_u *p; + +! wcscpy(itmp, L""); +! if (GetTempPathW(_MAX_PATH, wszTempFile) == 0) + { +! wszTempFile[0] = L'.'; // GetTempPathW() failed, use current dir +! wszTempFile[1] = NUL; + } +! wcscpy(buf4, L"VIM"); + buf4[2] = extra_char; /* make it "VIa", "VIb", etc. */ +! if (GetTempFileNameW(wszTempFile, buf4, 0, itmp) == 0) + return NULL; + if (!keep) +! // GetTempFileName() will create the file, we don't want that +! (void)DeleteFileW(itmp); + +! // Backslashes in a temp file name cause problems when filtering with +! // "sh". NOTE: This also checks 'shellcmdflag' to help those people who +! // didn't set 'shellslash'. +! retval = utf16_to_enc(itmp, NULL); + if (*p_shcf == '-' || p_ssl) + for (p = retval; *p; ++p) + if (*p == '\\') + *p = '/'; + return retval; + + # else /* WIN3264 */ +*** ../vim-8.1.0894/src/version.c 2019-02-10 23:18:49.038187525 +0100 +--- src/version.c 2019-02-10 23:25:57.095404785 +0100 +*************** +*** 785,786 **** +--- 785,788 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 895, + /**/ + +-- +NEIL INNES PLAYED: THE FIRST SELF-DESTRUCTIVE MONK, ROBIN'S LEAST FAVORITE + MINSTREL, THE PAGE CRUSHED BY A RABBIT, THE OWNER OF A DUCK + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |