Mercurial > vim
diff src/regexp_nfa.c @ 4730:749e2b2755d5 v7.3.1112
updated for version 7.3.1112
Problem: New regexp engine: \%V not supported.
Solution: Implement \%V. Add tests.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Tue, 04 Jun 2013 18:28:48 +0200 |
parents | 43de4ebbe7ad |
children | 0798b096bab3 |
line wrap: on
line diff
--- a/src/regexp_nfa.c +++ b/src/regexp_nfa.c @@ -178,6 +178,7 @@ enum NFA_VCOL, /* Match cursor virtual column */ NFA_VCOL_GT, /* Match > cursor virtual column */ NFA_VCOL_LT, /* Match < cursor virtual column */ + NFA_VISUAL, /* Match Visual area */ NFA_FIRST_NL = NFA_ANY + ADD_NL, NFA_LAST_NL = NFA_NUPPER + ADD_NL, @@ -960,8 +961,7 @@ nfa_regatom() break; case 'V': - /* TODO: not supported yet */ - return FAIL; + EMIT(NFA_VISUAL); break; case '[': @@ -4733,6 +4733,13 @@ nfa_regmatch(prog, start, submatch, m) t->pim, &listidx); break; + case NFA_VISUAL: + result = reg_match_visual(); + if (result) + addstate_here(thislist, t->state->out, &t->subs, + t->pim, &listidx); + break; + default: /* regular character */ { int c = t->state->c;