diff options
Diffstat (limited to '')
-rw-r--r-- | patches/source/vim/patches/7.4.204 | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/patches/source/vim/patches/7.4.204 b/patches/source/vim/patches/7.4.204 new file mode 100644 index 000000000..c6b491e0b --- /dev/null +++ b/patches/source/vim/patches/7.4.204 @@ -0,0 +1,113 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.204 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.204 +Problem: A mapping where the second byte is 0x80 doesn't work. +Solution: Unescape before checking for incomplete multi-byte char. (Nobuhiro + Takasaki) +Files: src/getchar.c, src/testdir/test75.in, src/testdir/test75.ok + + +*** ../vim-7.4.203/src/getchar.c 2014-02-15 16:17:02.213903042 +0100 +--- src/getchar.c 2014-03-12 20:06:17.944971557 +0100 +*************** +*** 2206,2215 **** + #ifdef FEAT_MBYTE + /* Don't allow mapping the first byte(s) of a + * multi-byte char. Happens when mapping +! * <M-a> and then changing 'encoding'. */ +! if (has_mbyte && MB_BYTE2LEN(c1) +! > (*mb_ptr2len)(mp->m_keys)) +! mlen = 0; + #endif + /* + * Check an entry whether it matches. +--- 2206,2221 ---- + #ifdef FEAT_MBYTE + /* Don't allow mapping the first byte(s) of a + * multi-byte char. Happens when mapping +! * <M-a> and then changing 'encoding'. Beware +! * that 0x80 is escaped. */ +! { +! char_u *p1 = mp->m_keys; +! char_u *p2 = mb_unescape(&p1); +! +! if (has_mbyte && p2 != NULL +! && MB_BYTE2LEN(c1) > MB_PTR2LEN(p2)) +! mlen = 0; +! } + #endif + /* + * Check an entry whether it matches. +*** ../vim-7.4.203/src/testdir/test75.in 2013-11-02 04:19:10.000000000 +0100 +--- src/testdir/test75.in 2014-03-12 20:02:45.932968308 +0100 +*************** +*** 1,8 **** +--- 1,11 ---- + Tests for maparg(). ++ Also test utf8 map with a 0x80 byte. + + STARTTEST + :so small.vim ++ :so mbyte.vim + :set cpo-=< ++ :set encoding=utf8 + :" Test maparg() with a string result + :map foo<C-V> is<F4>foo + :vnoremap <script> <buffer> <expr> <silent> bar isbar +*************** +*** 17,22 **** +--- 20,39 ---- + :map abc y<S-char-114>y + :call append('$', maparg('abc')) + :" ++ Go:" ++ :" Outside of the range, minimum ++ :inoremap <Char-0x1040> a ++ :call feedkeys("a\u1040\<Esc>") ++ :" Inside of the range, minimum ++ :inoremap <Char-0x103f> b ++ :call feedkeys("a\u103f\<Esc>") ++ :" Inside of the range, maximum ++ :inoremap <Char-0xf03f> c ++ :call feedkeys("a\uf03f\<Esc>") ++ :" Outside of the range, maximum ++ :inoremap <Char-0xf040> d ++ :call feedkeys("a\uf040\<Esc>") ++ :" + :/^eof/+1,$w! test.out + :qa! + ENDTEST +*** ../vim-7.4.203/src/testdir/test75.ok 2013-06-29 13:50:08.000000000 +0200 +--- src/testdir/test75.ok 2014-03-12 20:02:49.780968367 +0100 +*************** +*** 4,6 **** +--- 4,7 ---- + {'silent': 0, 'noremap': 0, 'lhs': 'foo', 'mode': ' ', 'nowait': 1, 'expr': 0, 'sid': 0, 'rhs': 'bar', 'buffer': 1} + xrx + yRy ++ abcd +*** ../vim-7.4.203/src/version.c 2014-03-12 19:41:37.100948866 +0100 +--- src/version.c 2014-03-12 20:06:43.684971951 +0100 +*************** +*** 740,741 **** +--- 740,743 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 204, + /**/ + +-- +If you only have a hammer, you tend to see every problem as a nail. +If you only have MS-Windows, you tend to solve every problem by rebooting. + + /// 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 /// |