updated for version 7.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.
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index d70e46a..9ae59ae 100644
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -2931,7 +2931,7 @@
}
if (c == NUL)
n = 0;
- cc = (char_u *)&c;
+ cc = reginput;
/* swap lists */
thislist = &list[flag];
@@ -2960,7 +2960,7 @@
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 78a999f..fb78b88 100644
--- a/src/testdir/test95.in
+++ b/src/testdir/test95.in
@@ -25,6 +25,9 @@
: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 d135b0e..cb1577a 100644
--- a/src/testdir/test95.ok
+++ b/src/testdir/test95.ok
@@ -4,3 +4,4 @@
OK - [^ม ]\+
OK - [^ ]\+
OK - [ม[:alpha:][=a=]]\+
+OK - \p\+
diff --git a/src/version.c b/src/version.c
index 80ac755..a57f685 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 982,
+/**/
981,
/**/
980,