summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2013-05-21 15:33:41 +0200
committerBram Moolenaar <Bram@vim.org>2013-05-21 15:33:41 +0200
commit12e4014092cae21d9fd914ee0fa3a09b51eacaab (patch)
tree8b5b6b1a94d780bff96aa985661ccac2ca5a6b7f
parent66e83d7db05152d0fe0e1c1ae42576be77ef18e3 (diff)
downloadvim-git-12e4014092cae21d9fd914ee0fa3a09b51eacaab.tar.gz
updated for version 7.3.989v7.3.989
Problem: New regexp engine compares negative numbers to character. Solution: Add missing case statements.
-rw-r--r--src/regexp_nfa.c22
-rw-r--r--src/version.c2
2 files changed, 24 insertions, 0 deletions
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index 8a0c2614a..297829a1d 100644
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -3383,8 +3383,30 @@ again:
ADD_POS_NEG_STATE(t->state);
break;
+ case NFA_MOPEN + 0:
+ case NFA_MOPEN + 1:
+ case NFA_MOPEN + 2:
+ case NFA_MOPEN + 3:
+ case NFA_MOPEN + 4:
+ case NFA_MOPEN + 5:
+ case NFA_MOPEN + 6:
+ case NFA_MOPEN + 7:
+ case NFA_MOPEN + 8:
+ case NFA_MOPEN + 9:
+ /* handled below */
+ break;
+
+ case NFA_SKIP_CHAR:
+ case NFA_ZSTART:
+ /* TODO: should not happen? */
+ break;
+
default: /* regular character */
+ /* TODO: put this in #ifdef later */
+ if (t->state->c < -256)
+ EMSGN("INTERNAL: Negative state char: %ld", t->state->c);
result = (no_Magic(t->state->c) == c);
+
if (!result)
result = ireg_ic == TRUE
&& MB_TOLOWER(t->state->c) == MB_TOLOWER(c);
diff --git a/src/version.c b/src/version.c
index 8931d1d9e..9ff699d2d 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 */
/**/
+ 989,
+/**/
988,
/**/
987,