diff options
Diffstat (limited to 'data/vim/patches/8.1.1091')
-rw-r--r-- | data/vim/patches/8.1.1091 | 213 |
1 files changed, 0 insertions, 213 deletions
diff --git a/data/vim/patches/8.1.1091 b/data/vim/patches/8.1.1091 deleted file mode 100644 index 28fb9cdb5..000000000 --- a/data/vim/patches/8.1.1091 +++ /dev/null @@ -1,213 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 8.1.1091 -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.1091 -Problem: MS-Windows: cannot use multi-byte chars in environment var. -Solution: Use the wide API. (Ken Takata, closes #4008) -Files: src/misc1.c, src/testdir/test_let.vim - - -*** ../vim-8.1.1090/src/misc1.c 2019-03-30 18:46:57.356077354 +0100 ---- src/misc1.c 2019-03-30 20:10:00.966173750 +0100 -*************** -*** 4301,4341 **** - char_u * - vim_getenv(char_u *name, int *mustfree) - { -! char_u *p; - char_u *pend; - int vimruntime; - -! #if defined(MSWIN) -! /* use "C:/" when $HOME is not set */ - if (STRCMP(name, "HOME") == 0) - return homedir; -- #endif - -! p = mch_getenv(name); -! if (p != NULL && *p == NUL) /* empty is the same as not set */ -! p = NULL; - -! if (p != NULL) - { -! #if defined(MSWIN) -! if (enc_utf8) -! { -! int len; -! char_u *pp = NULL; - -! /* Convert from active codepage to UTF-8. Other conversions are -! * not done, because they would fail for non-ASCII characters. */ -! acp_to_enc(p, (int)STRLEN(p), &pp, &len); -! if (pp != NULL) -! { -! p = pp; -! *mustfree = TRUE; -! } -! } -! #endif - return p; - } - - vimruntime = (STRCMP(name, "VIMRUNTIME") == 0); - if (!vimruntime && STRCMP(name, "VIM") != 0) - return NULL; ---- 4301,4346 ---- - char_u * - vim_getenv(char_u *name, int *mustfree) - { -! char_u *p = NULL; - char_u *pend; - int vimruntime; -+ #ifdef MSWIN -+ WCHAR *wn, *wp; - -! // use "C:/" when $HOME is not set - if (STRCMP(name, "HOME") == 0) - return homedir; - -! // Use Wide function -! wn = enc_to_utf16(name, NULL); -! if (wn == NULL) -! return NULL; - -! wp = _wgetenv(wn); -! vim_free(wn); -! -! if (wp != NULL && *wp == NUL) // empty is the same as not set -! wp = NULL; -! -! if (wp != NULL) - { -! p = utf16_to_enc(wp, NULL); -! if (p == NULL) -! return NULL; - -! *mustfree = TRUE; - return p; - } -+ #else -+ p = mch_getenv(name); -+ if (p != NULL && *p == NUL) // empty is the same as not set -+ p = NULL; - -+ if (p != NULL) -+ return p; -+ #endif -+ -+ // handling $VIMRUNTIME and $VIM is below, bail out if it's another name. - vimruntime = (STRCMP(name, "VIMRUNTIME") == 0); - if (!vimruntime && STRCMP(name, "VIM") != 0) - return NULL; -*************** -*** 4350,4357 **** - #endif - ) - { - p = mch_getenv((char_u *)"VIM"); -! if (p != NULL && *p == NUL) /* empty is the same as not set */ - p = NULL; - if (p != NULL) - { ---- 4355,4379 ---- - #endif - ) - { -+ #ifdef MSWIN -+ // Use Wide function -+ wp = _wgetenv(L"VIM"); -+ if (wp != NULL && *wp == NUL) // empty is the same as not set -+ wp = NULL; -+ if (wp != NULL) -+ { -+ char_u *q = utf16_to_enc(wp, NULL); -+ if (q != NULL) -+ { -+ p = vim_version_dir(q); -+ *mustfree = TRUE; -+ if (p == NULL) -+ p = q; -+ } -+ } -+ #else - p = mch_getenv((char_u *)"VIM"); -! if (p != NULL && *p == NUL) // empty is the same as not set - p = NULL; - if (p != NULL) - { -*************** -*** 4360,4386 **** - *mustfree = TRUE; - else - p = mch_getenv((char_u *)"VIM"); -- -- #if defined(MSWIN) -- if (enc_utf8) -- { -- int len; -- char_u *pp = NULL; -- -- /* Convert from active codepage to UTF-8. Other conversions -- * are not done, because they would fail for non-ASCII -- * characters. */ -- acp_to_enc(p, (int)STRLEN(p), &pp, &len); -- if (pp != NULL) -- { -- if (*mustfree) -- vim_free(p); -- p = pp; -- *mustfree = TRUE; -- } -- } -- #endif - } - } - - /* ---- 4382,4389 ---- - *mustfree = TRUE; - else - p = mch_getenv((char_u *)"VIM"); - } -+ #endif - } - - /* -*** ../vim-8.1.1090/src/testdir/test_let.vim 2019-02-11 22:00:07.671917613 +0100 ---- src/testdir/test_let.vim 2019-03-30 20:07:06.947341962 +0100 -*************** -*** 146,148 **** ---- 146,153 ---- - call assert_fails('call s:set_varg8(1)', 'E742:') - call s:set_varg9([0]) - endfunction -+ -+ func Test_let_utf8_environment() -+ let $a = 'ĀĒĪŌŪあいうえお' -+ call assert_equal('ĀĒĪŌŪあいうえお', $a) -+ endfunc -*** ../vim-8.1.1090/src/version.c 2019-03-30 20:04:05.024567549 +0100 ---- src/version.c 2019-03-30 20:07:53.131031588 +0100 -*************** -*** 777,778 **** ---- 777,780 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 1091, - /**/ - --- -Microsoft says that MS-Windows is much better for you than Linux. -That's like the Pope saying that catholicism is much better for -you than protestantism. - - /// 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 /// |