# HG changeset patch # User Bram Moolenaar # Date 1369143221 -7200 # Node ID cd005ab15ef3fce8f551c81ea10c93889f42d09d # Parent 407cdb221614cdc8a5c08da99603d81725a471a9 updated for version 7.3.989 Problem: New regexp engine compares negative numbers to character. Solution: Add missing case statements. diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c --- 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 --- 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,