diff options
author | Bram Moolenaar <Bram@vim.org> | 2013-05-21 15:33:41 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2013-05-21 15:33:41 +0200 |
commit | 12e4014092cae21d9fd914ee0fa3a09b51eacaab (patch) | |
tree | 8b5b6b1a94d780bff96aa985661ccac2ca5a6b7f /src/regexp_nfa.c | |
parent | 66e83d7db05152d0fe0e1c1ae42576be77ef18e3 (diff) | |
download | vim-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.
Diffstat (limited to 'src/regexp_nfa.c')
-rw-r--r-- | src/regexp_nfa.c | 22 |
1 files changed, 22 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); |