0
0
mirror of https://github.com/vim/vim.git synced 2025-11-16 23:24:03 -05:00

updated for version 7.4a.036

Problem:    "\p" in a regexp does not match double-width characters.
            (Yukihiro Nakadaira)
Solution:   Don't count display cells, use vim_isprintc().
This commit is contained in:
Bram Moolenaar
2013-07-21 17:06:00 +02:00
parent 9ba7e17de1
commit ac7c33e38c
7 changed files with 30 additions and 5 deletions

View File

@@ -228,6 +228,7 @@ STARTTEST
:call add(tl, [2, '\v((ab)|c*)+', 'abcccaba', 'abcccab', '', 'ab'])
:call add(tl, [2, '\v(a(c*)+b)+', 'acbababaaa', 'acbabab', 'ab', ''])
:call add(tl, [2, '\v(a|b*)+', 'aaaa', 'aaaa', ''])
:call add(tl, [2, '\p*', 'aá ', 'aá '])
:"
:" Test greedy-ness and lazy-ness
:call add(tl, [2, 'a\{-2,7}','aaaaaaaaaaaaa', 'aa'])

View File

@@ -506,6 +506,9 @@ OK 2 - \v(a(c*)+b)+
OK 0 - \v(a|b*)+
OK 1 - \v(a|b*)+
OK 2 - \v(a|b*)+
OK 0 - \p*
OK 1 - \p*
OK 2 - \p*
OK 0 - a\{-2,7}
OK 1 - a\{-2,7}
OK 2 - a\{-2,7}

View File

@@ -29,6 +29,7 @@ STARTTEST
:" this is not a normal "i" but 0xec
:call add(tl, [2, '\p\+', 'ìa', 'ìa'])
:call add(tl, [2, '\p*', 'aあ', 'aあ'])
:"""" Test recognition of some character classes
:call add(tl, [2, '\i\+', '&*¨xx ', 'xx'])
@@ -118,6 +119,16 @@ STARTTEST
:endfor
:unlet t tl e l
:" check that 'ambiwidth' does not change the meaning of \p
:set regexpengine=1 ambiwidth=single
:$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=1 ambiwidth=double
:$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=single
:$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=double
:$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')
:/\%#=1^Results/,$wq! test.out
ENDTEST

View File

@@ -17,6 +17,9 @@ OK 2 - [ม[:alpha:][=a=]]\+
OK 0 - \p\+
OK 1 - \p\+
OK 2 - \p\+
OK 0 - \p*
OK 1 - \p*
OK 2 - \p*
OK 0 - \i\+
OK 1 - \i\+
OK 2 - \i\+
@@ -113,3 +116,7 @@ OK 2 - \Zֹ\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
eng 1 ambi single: 0
eng 1 ambi double: 0
eng 2 ambi single: 0
eng 2 ambi double: 0