Mercurial > vim
changeset 4482:cd005ab15ef3 v7.3.989
updated for version 7.3.989
Problem: New regexp engine compares negative numbers to character.
Solution: Add missing case statements.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Tue, 21 May 2013 15:33:41 +0200 |
parents | 407cdb221614 |
children | 3e69f35334aa |
files | src/regexp_nfa.c src/version.c |
diffstat | 2 files changed, 24 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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);