From 12e4014092cae21d9fd914ee0fa3a09b51eacaab Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Tue, 21 May 2013 15:33:41 +0200 Subject: updated for version 7.3.989 Problem: New regexp engine compares negative numbers to character. Solution: Add missing case statements. --- src/regexp_nfa.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/regexp_nfa.c') 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); -- cgit v1.2.1