diff options
Diffstat (limited to 'src/regexp.c')
-rw-r--r-- | src/regexp.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/regexp.c b/src/regexp.c index a07c6f411..9ed5c7570 100644 --- a/src/regexp.c +++ b/src/regexp.c @@ -1500,6 +1500,10 @@ vim_regcomp_had_eol(void) } #endif +/* variables for parsing reginput */ +static int at_start; /* True when on the first character */ +static int prev_at_start; /* True when on the second character */ + /* * Parse regular expression, i.e. main body or parenthesized thing. * @@ -1918,6 +1922,7 @@ regatom(int *flagp) int c; char_u *p; int extra = 0; + int save_prev_at_start = prev_at_start; *flagp = WORST; /* Tentatively. */ @@ -2331,7 +2336,11 @@ regatom(int *flagp) else if (c == 'l' || c == 'c' || c == 'v') { if (c == 'l') + { ret = regnode(RE_LNUM); + if (save_prev_at_start) + at_start = TRUE; + } else if (c == 'c') ret = regnode(RE_COL); else @@ -2946,10 +2955,6 @@ regoptail(char_u *p, char_u *val) /* * Functions for getting characters from the regexp input. */ - -static int at_start; /* True when on the first character */ -static int prev_at_start; /* True when on the second character */ - /* * Start parsing at "str". */ |