|
Karsten Hopp |
d17aa0 |
To: vim_dev@googlegroups.com
|
|
Karsten Hopp |
d17aa0 |
Subject: Patch 7.3.1146
|
|
Karsten Hopp |
d17aa0 |
Fcc: outbox
|
|
Karsten Hopp |
d17aa0 |
From: Bram Moolenaar <Bram@moolenaar.net>
|
|
Karsten Hopp |
d17aa0 |
Mime-Version: 1.0
|
|
Karsten Hopp |
d17aa0 |
Content-Type: text/plain; charset=UTF-8
|
|
Karsten Hopp |
d17aa0 |
Content-Transfer-Encoding: 8bit
|
|
Karsten Hopp |
d17aa0 |
------------
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
Patch 7.3.1146
|
|
Karsten Hopp |
d17aa0 |
Problem: New regexp engine: look-behind match not checked when followed by
|
|
Karsten Hopp |
d17aa0 |
zero-width match.
|
|
Karsten Hopp |
d17aa0 |
Solution: Do the look-behind match before adding the zero-width state.
|
|
Karsten Hopp |
d17aa0 |
Files: src/regexp_nfa.c
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
*** ../vim-7.3.1145/src/regexp_nfa.c 2013-06-07 22:39:35.000000000 +0200
|
|
Karsten Hopp |
d17aa0 |
--- src/regexp_nfa.c 2013-06-08 13:16:52.000000000 +0200
|
|
Karsten Hopp |
d17aa0 |
***************
|
|
Karsten Hopp |
d17aa0 |
*** 4332,4337 ****
|
|
Karsten Hopp |
d17aa0 |
--- 4332,4338 ----
|
|
Karsten Hopp |
d17aa0 |
nfa_list_T *nextlist;
|
|
Karsten Hopp |
d17aa0 |
int *listids = NULL;
|
|
Karsten Hopp |
d17aa0 |
nfa_state_T *add_state;
|
|
Karsten Hopp |
d17aa0 |
+ int add_here;
|
|
Karsten Hopp |
d17aa0 |
int add_count;
|
|
Karsten Hopp |
d17aa0 |
int add_off;
|
|
Karsten Hopp |
d17aa0 |
garray_T pimlist;
|
|
Karsten Hopp |
d17aa0 |
***************
|
|
Karsten Hopp |
d17aa0 |
*** 4495,4500 ****
|
|
Karsten Hopp |
d17aa0 |
--- 4496,4502 ----
|
|
Karsten Hopp |
d17aa0 |
* The most important is NFA_MATCH.
|
|
Karsten Hopp |
d17aa0 |
*/
|
|
Karsten Hopp |
d17aa0 |
add_state = NULL;
|
|
Karsten Hopp |
d17aa0 |
+ add_here = FALSE;
|
|
Karsten Hopp |
d17aa0 |
add_count = 0;
|
|
Karsten Hopp |
d17aa0 |
switch (t->state->c)
|
|
Karsten Hopp |
d17aa0 |
{
|
|
Karsten Hopp |
d17aa0 |
***************
|
|
Karsten Hopp |
d17aa0 |
*** 4621,4638 ****
|
|
Karsten Hopp |
d17aa0 |
/* t->state->out1 is the corresponding
|
|
Karsten Hopp |
d17aa0 |
* END_INVISIBLE node; Add its out to the current
|
|
Karsten Hopp |
d17aa0 |
* list (zero-width match). */
|
|
Karsten Hopp |
d17aa0 |
! addstate_here(thislist, t->state->out1->out,
|
|
Karsten Hopp |
d17aa0 |
! &t->subs, t->pim, &listidx);
|
|
Karsten Hopp |
d17aa0 |
}
|
|
Karsten Hopp |
d17aa0 |
}
|
|
Karsten Hopp |
d17aa0 |
else
|
|
Karsten Hopp |
d17aa0 |
{
|
|
Karsten Hopp |
d17aa0 |
/*
|
|
Karsten Hopp |
d17aa0 |
* First try matching what follows at the current
|
|
Karsten Hopp |
d17aa0 |
! * position. Only if a match is found, addstate() is
|
|
Karsten Hopp |
d17aa0 |
! * called, then verify the invisible match matches.
|
|
Karsten Hopp |
d17aa0 |
! * Add a nfa_pim_T to the following states, it
|
|
Karsten Hopp |
d17aa0 |
! * contains info about the invisible match.
|
|
Karsten Hopp |
d17aa0 |
*/
|
|
Karsten Hopp |
d17aa0 |
if (ga_grow(&pimlist, 1) == FAIL)
|
|
Karsten Hopp |
d17aa0 |
goto theend;
|
|
Karsten Hopp |
d17aa0 |
--- 4623,4640 ----
|
|
Karsten Hopp |
d17aa0 |
/* t->state->out1 is the corresponding
|
|
Karsten Hopp |
d17aa0 |
* END_INVISIBLE node; Add its out to the current
|
|
Karsten Hopp |
d17aa0 |
* list (zero-width match). */
|
|
Karsten Hopp |
d17aa0 |
! add_here = TRUE;
|
|
Karsten Hopp |
d17aa0 |
! add_state = t->state->out1->out;
|
|
Karsten Hopp |
d17aa0 |
}
|
|
Karsten Hopp |
d17aa0 |
}
|
|
Karsten Hopp |
d17aa0 |
else
|
|
Karsten Hopp |
d17aa0 |
{
|
|
Karsten Hopp |
d17aa0 |
/*
|
|
Karsten Hopp |
d17aa0 |
* First try matching what follows at the current
|
|
Karsten Hopp |
d17aa0 |
! * position. Only if a match is found, before
|
|
Karsten Hopp |
d17aa0 |
! * addstate() is called, then verify the invisible
|
|
Karsten Hopp |
d17aa0 |
! * match matches. Add a nfa_pim_T to the following
|
|
Karsten Hopp |
d17aa0 |
! * states, it contains info about the invisible match.
|
|
Karsten Hopp |
d17aa0 |
*/
|
|
Karsten Hopp |
d17aa0 |
if (ga_grow(&pimlist, 1) == FAIL)
|
|
Karsten Hopp |
d17aa0 |
goto theend;
|
|
Karsten Hopp |
d17aa0 |
***************
|
|
Karsten Hopp |
d17aa0 |
*** 4727,4734 ****
|
|
Karsten Hopp |
d17aa0 |
/* empty match, output of corresponding
|
|
Karsten Hopp |
d17aa0 |
* NFA_END_PATTERN/NFA_SKIP to be used at current
|
|
Karsten Hopp |
d17aa0 |
* position */
|
|
Karsten Hopp |
d17aa0 |
! addstate_here(thislist, t->state->out1->out->out,
|
|
Karsten Hopp |
d17aa0 |
! &t->subs, t->pim, &listidx);
|
|
Karsten Hopp |
d17aa0 |
}
|
|
Karsten Hopp |
d17aa0 |
else if (bytelen <= clen)
|
|
Karsten Hopp |
d17aa0 |
{
|
|
Karsten Hopp |
d17aa0 |
--- 4729,4736 ----
|
|
Karsten Hopp |
d17aa0 |
/* empty match, output of corresponding
|
|
Karsten Hopp |
d17aa0 |
* NFA_END_PATTERN/NFA_SKIP to be used at current
|
|
Karsten Hopp |
d17aa0 |
* position */
|
|
Karsten Hopp |
d17aa0 |
! add_here = TRUE;
|
|
Karsten Hopp |
d17aa0 |
! add_state = t->state->out1->out->out;
|
|
Karsten Hopp |
d17aa0 |
}
|
|
Karsten Hopp |
d17aa0 |
else if (bytelen <= clen)
|
|
Karsten Hopp |
d17aa0 |
{
|
|
Karsten Hopp |
d17aa0 |
***************
|
|
Karsten Hopp |
d17aa0 |
*** 4751,4764 ****
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
case NFA_BOL:
|
|
Karsten Hopp |
d17aa0 |
if (reginput == regline)
|
|
Karsten Hopp |
d17aa0 |
! addstate_here(thislist, t->state->out, &t->subs,
|
|
Karsten Hopp |
d17aa0 |
! t->pim, &listidx);
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
case NFA_EOL:
|
|
Karsten Hopp |
d17aa0 |
if (curc == NUL)
|
|
Karsten Hopp |
d17aa0 |
! addstate_here(thislist, t->state->out, &t->subs,
|
|
Karsten Hopp |
d17aa0 |
! t->pim, &listidx);
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
case NFA_BOW:
|
|
Karsten Hopp |
d17aa0 |
--- 4753,4770 ----
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
case NFA_BOL:
|
|
Karsten Hopp |
d17aa0 |
if (reginput == regline)
|
|
Karsten Hopp |
d17aa0 |
! {
|
|
Karsten Hopp |
d17aa0 |
! add_here = TRUE;
|
|
Karsten Hopp |
d17aa0 |
! add_state = t->state->out;
|
|
Karsten Hopp |
d17aa0 |
! }
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
case NFA_EOL:
|
|
Karsten Hopp |
d17aa0 |
if (curc == NUL)
|
|
Karsten Hopp |
d17aa0 |
! {
|
|
Karsten Hopp |
d17aa0 |
! add_here = TRUE;
|
|
Karsten Hopp |
d17aa0 |
! add_state = t->state->out;
|
|
Karsten Hopp |
d17aa0 |
! }
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
case NFA_BOW:
|
|
Karsten Hopp |
d17aa0 |
***************
|
|
Karsten Hopp |
d17aa0 |
*** 4784,4791 ****
|
|
Karsten Hopp |
d17aa0 |
&& vim_iswordc_buf(reginput[-1], reg_buf)))
|
|
Karsten Hopp |
d17aa0 |
result = FALSE;
|
|
Karsten Hopp |
d17aa0 |
if (result)
|
|
Karsten Hopp |
d17aa0 |
! addstate_here(thislist, t->state->out, &t->subs,
|
|
Karsten Hopp |
d17aa0 |
! t->pim, &listidx);
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
case NFA_EOW:
|
|
Karsten Hopp |
d17aa0 |
--- 4790,4799 ----
|
|
Karsten Hopp |
d17aa0 |
&& vim_iswordc_buf(reginput[-1], reg_buf)))
|
|
Karsten Hopp |
d17aa0 |
result = FALSE;
|
|
Karsten Hopp |
d17aa0 |
if (result)
|
|
Karsten Hopp |
d17aa0 |
! {
|
|
Karsten Hopp |
d17aa0 |
! add_here = TRUE;
|
|
Karsten Hopp |
d17aa0 |
! add_state = t->state->out;
|
|
Karsten Hopp |
d17aa0 |
! }
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
case NFA_EOW:
|
|
Karsten Hopp |
d17aa0 |
***************
|
|
Karsten Hopp |
d17aa0 |
*** 4810,4830 ****
|
|
Karsten Hopp |
d17aa0 |
&& vim_iswordc_buf(curc, reg_buf)))
|
|
Karsten Hopp |
d17aa0 |
result = FALSE;
|
|
Karsten Hopp |
d17aa0 |
if (result)
|
|
Karsten Hopp |
d17aa0 |
! addstate_here(thislist, t->state->out, &t->subs,
|
|
Karsten Hopp |
d17aa0 |
! t->pim, &listidx);
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
case NFA_BOF:
|
|
Karsten Hopp |
d17aa0 |
if (reglnum == 0 && reginput == regline
|
|
Karsten Hopp |
d17aa0 |
&& (!REG_MULTI || reg_firstlnum == 1))
|
|
Karsten Hopp |
d17aa0 |
! addstate_here(thislist, t->state->out, &t->subs,
|
|
Karsten Hopp |
d17aa0 |
! t->pim, &listidx);
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
case NFA_EOF:
|
|
Karsten Hopp |
d17aa0 |
if (reglnum == reg_maxline && curc == NUL)
|
|
Karsten Hopp |
d17aa0 |
! addstate_here(thislist, t->state->out, &t->subs,
|
|
Karsten Hopp |
d17aa0 |
! t->pim, &listidx);
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
#ifdef FEAT_MBYTE
|
|
Karsten Hopp |
d17aa0 |
--- 4818,4844 ----
|
|
Karsten Hopp |
d17aa0 |
&& vim_iswordc_buf(curc, reg_buf)))
|
|
Karsten Hopp |
d17aa0 |
result = FALSE;
|
|
Karsten Hopp |
d17aa0 |
if (result)
|
|
Karsten Hopp |
d17aa0 |
! {
|
|
Karsten Hopp |
d17aa0 |
! add_here = TRUE;
|
|
Karsten Hopp |
d17aa0 |
! add_state = t->state->out;
|
|
Karsten Hopp |
d17aa0 |
! }
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
case NFA_BOF:
|
|
Karsten Hopp |
d17aa0 |
if (reglnum == 0 && reginput == regline
|
|
Karsten Hopp |
d17aa0 |
&& (!REG_MULTI || reg_firstlnum == 1))
|
|
Karsten Hopp |
d17aa0 |
! {
|
|
Karsten Hopp |
d17aa0 |
! add_here = TRUE;
|
|
Karsten Hopp |
d17aa0 |
! add_state = t->state->out;
|
|
Karsten Hopp |
d17aa0 |
! }
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
case NFA_EOF:
|
|
Karsten Hopp |
d17aa0 |
if (reglnum == reg_maxline && curc == NUL)
|
|
Karsten Hopp |
d17aa0 |
! {
|
|
Karsten Hopp |
d17aa0 |
! add_here = TRUE;
|
|
Karsten Hopp |
d17aa0 |
! add_state = t->state->out;
|
|
Karsten Hopp |
d17aa0 |
! }
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
#ifdef FEAT_MBYTE
|
|
Karsten Hopp |
d17aa0 |
***************
|
|
Karsten Hopp |
d17aa0 |
*** 5183,5190 ****
|
|
Karsten Hopp |
d17aa0 |
{
|
|
Karsten Hopp |
d17aa0 |
/* empty match always works, output of NFA_SKIP to be
|
|
Karsten Hopp |
d17aa0 |
* used next */
|
|
Karsten Hopp |
d17aa0 |
! addstate_here(thislist, t->state->out->out, &t->subs,
|
|
Karsten Hopp |
d17aa0 |
! t->pim, &listidx);
|
|
Karsten Hopp |
d17aa0 |
}
|
|
Karsten Hopp |
d17aa0 |
else if (bytelen <= clen)
|
|
Karsten Hopp |
d17aa0 |
{
|
|
Karsten Hopp |
d17aa0 |
--- 5197,5204 ----
|
|
Karsten Hopp |
d17aa0 |
{
|
|
Karsten Hopp |
d17aa0 |
/* empty match always works, output of NFA_SKIP to be
|
|
Karsten Hopp |
d17aa0 |
* used next */
|
|
Karsten Hopp |
d17aa0 |
! add_here = TRUE;
|
|
Karsten Hopp |
d17aa0 |
! add_state = t->state->out->out;
|
|
Karsten Hopp |
d17aa0 |
}
|
|
Karsten Hopp |
d17aa0 |
else if (bytelen <= clen)
|
|
Karsten Hopp |
d17aa0 |
{
|
|
Karsten Hopp |
d17aa0 |
***************
|
|
Karsten Hopp |
d17aa0 |
*** 5228,5235 ****
|
|
Karsten Hopp |
d17aa0 |
nfa_re_num_cmp(t->state->val, t->state->c - NFA_LNUM,
|
|
Karsten Hopp |
d17aa0 |
(long_u)(reglnum + reg_firstlnum)));
|
|
Karsten Hopp |
d17aa0 |
if (result)
|
|
Karsten Hopp |
d17aa0 |
! addstate_here(thislist, t->state->out, &t->subs,
|
|
Karsten Hopp |
d17aa0 |
! t->pim, &listidx);
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
case NFA_COL:
|
|
Karsten Hopp |
d17aa0 |
--- 5242,5251 ----
|
|
Karsten Hopp |
d17aa0 |
nfa_re_num_cmp(t->state->val, t->state->c - NFA_LNUM,
|
|
Karsten Hopp |
d17aa0 |
(long_u)(reglnum + reg_firstlnum)));
|
|
Karsten Hopp |
d17aa0 |
if (result)
|
|
Karsten Hopp |
d17aa0 |
! {
|
|
Karsten Hopp |
d17aa0 |
! add_here = TRUE;
|
|
Karsten Hopp |
d17aa0 |
! add_state = t->state->out;
|
|
Karsten Hopp |
d17aa0 |
! }
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
case NFA_COL:
|
|
Karsten Hopp |
d17aa0 |
***************
|
|
Karsten Hopp |
d17aa0 |
*** 5238,5245 ****
|
|
Karsten Hopp |
d17aa0 |
result = nfa_re_num_cmp(t->state->val, t->state->c - NFA_COL,
|
|
Karsten Hopp |
d17aa0 |
(long_u)(reginput - regline) + 1);
|
|
Karsten Hopp |
d17aa0 |
if (result)
|
|
Karsten Hopp |
d17aa0 |
! addstate_here(thislist, t->state->out, &t->subs,
|
|
Karsten Hopp |
d17aa0 |
! t->pim, &listidx);
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
case NFA_VCOL:
|
|
Karsten Hopp |
d17aa0 |
--- 5254,5263 ----
|
|
Karsten Hopp |
d17aa0 |
result = nfa_re_num_cmp(t->state->val, t->state->c - NFA_COL,
|
|
Karsten Hopp |
d17aa0 |
(long_u)(reginput - regline) + 1);
|
|
Karsten Hopp |
d17aa0 |
if (result)
|
|
Karsten Hopp |
d17aa0 |
! {
|
|
Karsten Hopp |
d17aa0 |
! add_here = TRUE;
|
|
Karsten Hopp |
d17aa0 |
! add_state = t->state->out;
|
|
Karsten Hopp |
d17aa0 |
! }
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
case NFA_VCOL:
|
|
Karsten Hopp |
d17aa0 |
***************
|
|
Karsten Hopp |
d17aa0 |
*** 5250,5257 ****
|
|
Karsten Hopp |
d17aa0 |
reg_win == NULL ? curwin : reg_win,
|
|
Karsten Hopp |
d17aa0 |
regline, (colnr_T)(reginput - regline)) + 1);
|
|
Karsten Hopp |
d17aa0 |
if (result)
|
|
Karsten Hopp |
d17aa0 |
! addstate_here(thislist, t->state->out, &t->subs,
|
|
Karsten Hopp |
d17aa0 |
! t->pim, &listidx);
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
case NFA_MARK:
|
|
Karsten Hopp |
d17aa0 |
--- 5268,5277 ----
|
|
Karsten Hopp |
d17aa0 |
reg_win == NULL ? curwin : reg_win,
|
|
Karsten Hopp |
d17aa0 |
regline, (colnr_T)(reginput - regline)) + 1);
|
|
Karsten Hopp |
d17aa0 |
if (result)
|
|
Karsten Hopp |
d17aa0 |
! {
|
|
Karsten Hopp |
d17aa0 |
! add_here = TRUE;
|
|
Karsten Hopp |
d17aa0 |
! add_state = t->state->out;
|
|
Karsten Hopp |
d17aa0 |
! }
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
case NFA_MARK:
|
|
Karsten Hopp |
d17aa0 |
***************
|
|
Karsten Hopp |
d17aa0 |
*** 5273,5280 ****
|
|
Karsten Hopp |
d17aa0 |
? t->state->c == NFA_MARK_GT
|
|
Karsten Hopp |
d17aa0 |
: t->state->c == NFA_MARK_LT)));
|
|
Karsten Hopp |
d17aa0 |
if (result)
|
|
Karsten Hopp |
d17aa0 |
! addstate_here(thislist, t->state->out, &t->subs,
|
|
Karsten Hopp |
d17aa0 |
! t->pim, &listidx);
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
}
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
--- 5293,5302 ----
|
|
Karsten Hopp |
d17aa0 |
? t->state->c == NFA_MARK_GT
|
|
Karsten Hopp |
d17aa0 |
: t->state->c == NFA_MARK_LT)));
|
|
Karsten Hopp |
d17aa0 |
if (result)
|
|
Karsten Hopp |
d17aa0 |
! {
|
|
Karsten Hopp |
d17aa0 |
! add_here = TRUE;
|
|
Karsten Hopp |
d17aa0 |
! add_state = t->state->out;
|
|
Karsten Hopp |
d17aa0 |
! }
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
}
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
***************
|
|
Karsten Hopp |
d17aa0 |
*** 5284,5299 ****
|
|
Karsten Hopp |
d17aa0 |
&& ((colnr_T)(reginput - regline)
|
|
Karsten Hopp |
d17aa0 |
== reg_win->w_cursor.col));
|
|
Karsten Hopp |
d17aa0 |
if (result)
|
|
Karsten Hopp |
d17aa0 |
! addstate_here(thislist, t->state->out, &t->subs,
|
|
Karsten Hopp |
d17aa0 |
! t->pim, &listidx);
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
case NFA_VISUAL:
|
|
Karsten Hopp |
d17aa0 |
#ifdef FEAT_VISUAL
|
|
Karsten Hopp |
d17aa0 |
result = reg_match_visual();
|
|
Karsten Hopp |
d17aa0 |
if (result)
|
|
Karsten Hopp |
d17aa0 |
! addstate_here(thislist, t->state->out, &t->subs,
|
|
Karsten Hopp |
d17aa0 |
! t->pim, &listidx);
|
|
Karsten Hopp |
d17aa0 |
#endif
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
--- 5306,5325 ----
|
|
Karsten Hopp |
d17aa0 |
&& ((colnr_T)(reginput - regline)
|
|
Karsten Hopp |
d17aa0 |
== reg_win->w_cursor.col));
|
|
Karsten Hopp |
d17aa0 |
if (result)
|
|
Karsten Hopp |
d17aa0 |
! {
|
|
Karsten Hopp |
d17aa0 |
! add_here = TRUE;
|
|
Karsten Hopp |
d17aa0 |
! add_state = t->state->out;
|
|
Karsten Hopp |
d17aa0 |
! }
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
case NFA_VISUAL:
|
|
Karsten Hopp |
d17aa0 |
#ifdef FEAT_VISUAL
|
|
Karsten Hopp |
d17aa0 |
result = reg_match_visual();
|
|
Karsten Hopp |
d17aa0 |
if (result)
|
|
Karsten Hopp |
d17aa0 |
! {
|
|
Karsten Hopp |
d17aa0 |
! add_here = TRUE;
|
|
Karsten Hopp |
d17aa0 |
! add_state = t->state->out;
|
|
Karsten Hopp |
d17aa0 |
! }
|
|
Karsten Hopp |
d17aa0 |
#endif
|
|
Karsten Hopp |
d17aa0 |
break;
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
***************
|
|
Karsten Hopp |
d17aa0 |
*** 5327,5333 ****
|
|
Karsten Hopp |
d17aa0 |
if (t->pim != NULL)
|
|
Karsten Hopp |
d17aa0 |
{
|
|
Karsten Hopp |
d17aa0 |
/* postponed invisible match */
|
|
Karsten Hopp |
d17aa0 |
- /* TODO: also do t->pim->pim recursively? */
|
|
Karsten Hopp |
d17aa0 |
if (t->pim->result == NFA_PIM_TODO)
|
|
Karsten Hopp |
d17aa0 |
{
|
|
Karsten Hopp |
d17aa0 |
#ifdef ENABLE_LOG
|
|
Karsten Hopp |
d17aa0 |
--- 5353,5358 ----
|
|
Karsten Hopp |
d17aa0 |
***************
|
|
Karsten Hopp |
d17aa0 |
*** 5383,5391 ****
|
|
Karsten Hopp |
d17aa0 |
continue;
|
|
Karsten Hopp |
d17aa0 |
}
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
! addstate(nextlist, add_state, &t->subs, add_off);
|
|
Karsten Hopp |
d17aa0 |
! if (add_count > 0)
|
|
Karsten Hopp |
d17aa0 |
! nextlist->t[nextlist->n - 1].count = add_count;
|
|
Karsten Hopp |
d17aa0 |
}
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
} /* for (thislist = thislist; thislist->state; thislist++) */
|
|
Karsten Hopp |
d17aa0 |
--- 5408,5421 ----
|
|
Karsten Hopp |
d17aa0 |
continue;
|
|
Karsten Hopp |
d17aa0 |
}
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
! if (add_here)
|
|
Karsten Hopp |
d17aa0 |
! addstate_here(thislist, add_state, &t->subs, NULL, &listidx);
|
|
Karsten Hopp |
d17aa0 |
! else
|
|
Karsten Hopp |
d17aa0 |
! {
|
|
Karsten Hopp |
d17aa0 |
! addstate(nextlist, add_state, &t->subs, add_off);
|
|
Karsten Hopp |
d17aa0 |
! if (add_count > 0)
|
|
Karsten Hopp |
d17aa0 |
! nextlist->t[nextlist->n - 1].count = add_count;
|
|
Karsten Hopp |
d17aa0 |
! }
|
|
Karsten Hopp |
d17aa0 |
}
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
} /* for (thislist = thislist; thislist->state; thislist++) */
|
|
Karsten Hopp |
d17aa0 |
*** ../vim-7.3.1145/src/version.c 2013-06-07 22:39:35.000000000 +0200
|
|
Karsten Hopp |
d17aa0 |
--- src/version.c 2013-06-08 13:30:41.000000000 +0200
|
|
Karsten Hopp |
d17aa0 |
***************
|
|
Karsten Hopp |
d17aa0 |
*** 730,731 ****
|
|
Karsten Hopp |
d17aa0 |
--- 730,733 ----
|
|
Karsten Hopp |
d17aa0 |
{ /* Add new patch number below this line */
|
|
Karsten Hopp |
d17aa0 |
+ /**/
|
|
Karsten Hopp |
d17aa0 |
+ 1146,
|
|
Karsten Hopp |
d17aa0 |
/**/
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
--
|
|
Karsten Hopp |
d17aa0 |
hundred-and-one symptoms of being an internet addict:
|
|
Karsten Hopp |
d17aa0 |
111. You and your friends get together regularly on IRC, even though
|
|
Karsten Hopp |
d17aa0 |
all of you live in the same city.
|
|
Karsten Hopp |
d17aa0 |
|
|
Karsten Hopp |
d17aa0 |
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
|
Karsten Hopp |
d17aa0 |
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
|
Karsten Hopp |
d17aa0 |
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
|
Karsten Hopp |
d17aa0 |
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|