]> granicus.if.org Git - vim/commitdiff
updated for version 7.3.981 v7.3.981
authorBram Moolenaar <Bram@vim.org>
Mon, 20 May 2013 22:03:02 +0000 (00:03 +0200)
committerBram Moolenaar <Bram@vim.org>
Mon, 20 May 2013 22:03:02 +0000 (00:03 +0200)
Problem:    In the old regexp engine \i, \I, \f and \F don't work on
            multi-byte characters.
Solution:   Dereference pointer properly.

src/regexp.c
src/testdir/test64.in
src/testdir/test64.ok
src/version.c

index 60765d728f668553d06d2c04847ba53bea80519b..29b40813f4438ecaa7c9a46cab03948063cddec3 100644 (file)
@@ -5758,7 +5758,7 @@ regrepeat(p, maxcount)
       case SIDENT + ADD_NL:
        while (count < maxcount)
        {
-           if (vim_isIDc(*scan) && (testval || !VIM_ISDIGIT(*scan)))
+           if (vim_isIDc(PTR2CHAR(scan)) && (testval || !VIM_ISDIGIT(*scan)))
            {
                mb_ptr_adv(scan);
            }
@@ -5819,7 +5819,7 @@ regrepeat(p, maxcount)
       case SFNAME + ADD_NL:
        while (count < maxcount)
        {
-           if (vim_isfilec(*scan) && (testval || !VIM_ISDIGIT(*scan)))
+           if (vim_isfilec(PTR2CHAR(scan)) && (testval || !VIM_ISDIGIT(*scan)))
            {
                mb_ptr_adv(scan);
            }
index be71282862d56f96560810a4b531e49970397b93..37f263b75d745330bba398df1ced40e48ce6f0d6 100644 (file)
@@ -262,6 +262,10 @@ STARTTEST
 :call add(tl, ['[a-zA-Z]', 'a', 'a'])
 :call add(tl, ['[A-Z]', 'a'])
 :call add(tl, ['\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
+:call add(tl, ['\i\+', '&*§xx ', 'xx'])
+:call add(tl, ['\%#=1\i\+', '&*§xx ', 'xx'])
+:call add(tl, ['\f\+', '&*\9ffname ', 'fname'])
+:call add(tl, ['\%#=1\i\+', '&*\9ffname ', 'fname'])
 
 :"""" Tests for \z features
 :call add(tl, ['xx \ze test', 'xx '])                                  " must match after \ze
index c315a23eb7c102da523cb21d946da51976d687e5..e3f5657edb36c53b1c01e66e8a81526187a3beed 100644 (file)
@@ -203,6 +203,10 @@ OK - [a-z]
 OK - [a-zA-Z]
 OK - [A-Z]
 OK - \C[^A-Z]\+
+OK - \i\+
+OK - \%#=1\i\+
+OK - \f\+
+OK - \%#=1\i\+
 OK - xx \ze test
 OK - abc\zeend
 OK - abc\zsdd
index bef4af2ee160713f323cb55624e6f7ece66c22cb..80ac755911b360e032d9cec2e39dbca6050655bc 100644 (file)
@@ -728,6 +728,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    981,
 /**/
     980,
 /**/