int n;
/* \%[abc] */
- for (n = 0; (c = getchr()) != ']'; ++n)
+ for (n = 0; (c = peekchr()) != ']'; ++n)
{
if (c == NUL)
EMSG2_RET_FAIL(_(e_missing_sb),
reg_magic == MAGIC_ALL);
- EMIT(c);
+ /* recursive call! */
+ if (nfa_regatom() == FAIL)
+ return FAIL;
}
+ getchr(); /* get the ] */
if (n == 0)
EMSG2_RET_FAIL(_(e_empty_sb),
reg_magic == MAGIC_ALL);
:call add(tl, [2, '\%[bar]x', 'barxx', 'barx'])
:call add(tl, [2, '\%[bar]x', 'bxx', 'bx'])
:call add(tl, [2, '\%[bar]x', 'xxx', 'x'])
+:call add(tl, [2, 'b\%[[ao]r]', 'bar bor', 'bar'])
:"
:"""" Alternatives, must use first longest match
:call add(tl, [2, 'goo\|go', 'google', 'goo'])