vim/7.4.204
2014-03-12 20:34:22 +01:00

114 lines
3.4 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 ///