diff options
Diffstat (limited to 'src/regexp_nfa.c')
-rw-r--r-- | src/regexp_nfa.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c index b39848927..fc1a99339 100644 --- a/src/regexp_nfa.c +++ b/src/regexp_nfa.c @@ -6775,12 +6775,14 @@ nfa_regmatch( } if (!result) { - linenr_T lnum = rex.reg_firstlnum + rex.lnum; - long_u vcol = 0; - - if (lnum >= 0 - && lnum <= wp->w_buffer->b_ml.ml_line_count) - vcol = (long_u)win_linetabsize(wp, lnum, + linenr_T lnum = REG_MULTI + ? rex.reg_firstlnum + rex.lnum : 1; + long_u vcol; + + if (REG_MULTI && (lnum <= 0 + || lnum > wp->w_buffer->b_ml.ml_line_count)) + lnum = 1; + vcol = (long_u)win_linetabsize(wp, lnum, rex.line, col); result = nfa_re_num_cmp(t->state->val, op, vcol + 1); } |