diff options
Diffstat (limited to 'data/vim/patches/8.1.0297')
-rw-r--r-- | data/vim/patches/8.1.0297 | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0297 b/data/vim/patches/8.1.0297 new file mode 100644 index 000000000..c91b19222 --- /dev/null +++ b/data/vim/patches/8.1.0297 @@ -0,0 +1,104 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.0297 +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.0297 (after 8.1.0294) +Problem: MS-Windows: tests fail, Vim crashes. +Solution: Fix long file name handling. +Files: src/os_win32.c + + +*** ../vim-8.1.0296/src/os_win32.c 2018-08-18 20:20:23.335417254 +0200 +--- src/os_win32.c 2018-08-19 14:36:25.032599518 +0200 +*************** +*** 3109,3114 **** +--- 3109,3115 ---- + int len) + { + char_u abuf[_MAX_PATH + 1]; ++ DWORD lfnlen; + + /* + * Originally this was: +*************** +*** 3124,3134 **** + if (GetCurrentDirectoryW(_MAX_PATH, wbuf) != 0) + { + WCHAR wcbuf[_MAX_PATH + 1]; +! char_u *p; + + if (GetLongPathNameW(wbuf, wcbuf, _MAX_PATH) != 0) + p = utf16_to_enc(wcbuf, NULL); +! else + p = utf16_to_enc(wbuf, NULL); + + if (p != NULL) +--- 3125,3143 ---- + if (GetCurrentDirectoryW(_MAX_PATH, wbuf) != 0) + { + WCHAR wcbuf[_MAX_PATH + 1]; +! char_u *p = NULL; + + if (GetLongPathNameW(wbuf, wcbuf, _MAX_PATH) != 0) ++ { + p = utf16_to_enc(wcbuf, NULL); +! if (STRLEN(p) >= (size_t)len) +! { +! // long path name is too long, fall back to short one +! vim_free(p); +! p = NULL; +! } +! } +! if (p == NULL) + p = utf16_to_enc(wbuf, NULL); + + if (p != NULL) +*************** +*** 3143,3153 **** + #endif + if (GetCurrentDirectory(len, (LPSTR)buf) == 0) + return FAIL; +! if (GetLongPathNameA((LPSTR)buf, (LPSTR)abuf, _MAX_PATH) == 0) +! // return the short path name + return OK; + +! vim_strncpy(abuf, buf, len - 1); + return OK; + } + +--- 3152,3164 ---- + #endif + if (GetCurrentDirectory(len, (LPSTR)buf) == 0) + return FAIL; +! lfnlen = GetLongPathNameA((LPCSTR)buf, (LPSTR)abuf, _MAX_PATH); +! if (lfnlen == 0 || lfnlen >= (DWORD)len) +! // Failed to get long path name or it's too long: fall back to the +! // short path name. + return OK; + +! STRCPY(buf, abuf); + return OK; + } + +*** ../vim-8.1.0296/src/version.c 2018-08-18 21:23:00.787474060 +0200 +--- src/version.c 2018-08-19 14:33:49.277455703 +0200 +*************** +*** 796,797 **** +--- 796,799 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 297, + /**/ + +-- +The most powerful force in the universe is gossip. + + /// 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 /// |