summaryrefslogtreecommitdiff
path: root/src/regexp_nfa.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/regexp_nfa.c')
-rw-r--r--src/regexp_nfa.c14
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);
}