updated for version 7.3.1112
Problem: New regexp engine: \%V not supported.
Solution: Implement \%V. Add tests.
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index f1bd665..0a1dec6 100644
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -178,6 +178,7 @@
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 @@
break;
case 'V':
- /* TODO: not supported yet */
- return FAIL;
+ EMIT(NFA_VISUAL);
break;
case '[':
@@ -4733,6 +4733,13 @@
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;