vim-patch:7.4.1305 #5094

Problem:    "\%1l^#.*" does not match on a line starting with "#".
Solution:   Do not clear the start-of-line flag. (Christian Brabandt)

7c29f38781

Helped-by: jamessan
Helped-by: mhinz
This commit is contained in:
Michael Ennen
2016-07-19 23:24:42 -07:00
committed by Justin M. Keyes
parent 23f591dba0
commit 6fe8c1d051
4 changed files with 42 additions and 20 deletions

View File

@@ -1096,6 +1096,7 @@ static int nfa_regatom(void)
int startc = -1;
int endc = -1;
int oldstartc = -1;
int save_prev_at_start = prev_at_start;
c = getchr();
switch (c) {
@@ -1412,18 +1413,22 @@ static int nfa_regatom(void)
c = getchr();
}
if (c == 'l' || c == 'c' || c == 'v') {
if (c == 'l')
/* \%{n}l \%{n}<l \%{n}>l */
if (c == 'l') {
// \%{n}l \%{n}<l \%{n}>l
EMIT(cmp == '<' ? NFA_LNUM_LT :
cmp == '>' ? NFA_LNUM_GT : NFA_LNUM);
else if (c == 'c')
/* \%{n}c \%{n}<c \%{n}>c */
cmp == '>' ? NFA_LNUM_GT : NFA_LNUM);
if (save_prev_at_start) {
at_start = true;
}
} else if (c == 'c') {
// \%{n}c \%{n}<c \%{n}>c
EMIT(cmp == '<' ? NFA_COL_LT :
cmp == '>' ? NFA_COL_GT : NFA_COL);
else
/* \%{n}v \%{n}<v \%{n}>v */
cmp == '>' ? NFA_COL_GT : NFA_COL);
} else {
// \%{n}v \%{n}<v \%{n}>v
EMIT(cmp == '<' ? NFA_VCOL_LT :
cmp == '>' ? NFA_VCOL_GT : NFA_VCOL);
cmp == '>' ? NFA_VCOL_GT : NFA_VCOL);
}
EMIT(n);
break;
} else if (c == '\'' && n == 0) {