summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <bram@vim.org>2013-05-21 12:34:17 +0200
committerBram Moolenaar <bram@vim.org>2013-05-21 12:34:17 +0200
commit784daaf92b4339c921beaae2153412b75915cbe0 (patch)
treeb6a98f178cfe06c050bfe7170621db50023ec263
parent53135ab7b9a113b83a15b0262575c5c3833ef555 (diff)
downloadvim-784daaf92b4339c921beaae2153412b75915cbe0.tar.gz
updated for version 7.3.982v7.3.982v7-3-982
Problem: In the new regexp engine \p does not work on multi-byte characters. Solution: Don't point to an integer but the characters.
-rw-r--r--src/regexp_nfa.c4
-rw-r--r--src/testdir/test95.in3
-rw-r--r--src/testdir/test95.ok1
-rw-r--r--src/version.c2
4 files changed, 8 insertions, 2 deletions
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index d70e46a6..9ae59ae6 100644
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -2931,7 +2931,7 @@ again:
}
if (c == NUL)
n = 0;
- cc = (char_u *)&c;
+ cc = reginput;
/* swap lists */
thislist = &list[flag];
@@ -2960,7 +2960,7 @@ again:
if (neglist->n > 0)
{
t = &neglist->t[0];
- neglist->n --;
+ neglist->n--;
i--;
}
else
diff --git a/src/testdir/test95.in b/src/testdir/test95.in
index 78a999f5..fb78b88d 100644
--- a/src/testdir/test95.in
+++ b/src/testdir/test95.in
@@ -25,6 +25,9 @@ STARTTEST
:call add(tl, [' [^ ]\+', 'start มabcdม ', ' มabcdม'])
:call add(tl, ['[ม[:alpha:][=a=]]\+', '879 aiaãมâมaiuvna ', 'aiaãมâมaiuvna'])
+:" this is not a normal "i" but 0xec
+:call add(tl, ['\p\+', 'ìa', 'ìa'])
+
:"""" Run the tests
:"
diff --git a/src/testdir/test95.ok b/src/testdir/test95.ok
index d135b0eb..cb1577a7 100644
--- a/src/testdir/test95.ok
+++ b/src/testdir/test95.ok
@@ -4,3 +4,4 @@ OK - [[=a=]]\+
OK - [^ม ]\+
OK - [^ ]\+
OK - [ม[:alpha:][=a=]]\+
+OK - \p\+
diff --git a/src/version.c b/src/version.c
index 80ac7559..a57f685b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 982,
+/**/
981,
/**/
980,