patch 9.0.0414: matchstr() still does not match column offset
Problem: matchstr() still does not match column offset when done after a
text search.
Solution: Only use the line number for a multi-line search. Fix the test.
(closes #10938)
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index b398489..fc1a993 100644
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -6775,12 +6775,14 @@
}
if (!result)
{
- linenr_T lnum = rex.reg_firstlnum + rex.lnum;
- long_u vcol = 0;
+ linenr_T lnum = REG_MULTI
+ ? rex.reg_firstlnum + rex.lnum : 1;
+ long_u vcol;
- if (lnum >= 0
- && lnum <= wp->w_buffer->b_ml.ml_line_count)
- vcol = (long_u)win_linetabsize(wp, lnum,
+ 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);
}