Mercurial > vim
diff src/quickfix.c @ 34540:9e093c96dff6 v9.1.0172
patch 9.1.0172: More code can use ml_get_buf_len() instead of STRLEN()
Commit: https://github.com/vim/vim/commit/94b7c3233ef534acc669b3083ed1fe59cf3a090b
Author: zeertzjq <zeertzjq@outlook.com>
Date: Tue Mar 12 21:50:32 2024 +0100
patch 9.1.0172: More code can use ml_get_buf_len() instead of STRLEN()
Problem: More code can use ml_get_buf_len() instead of STRLEN().
Solution: Change more STRLEN() calls to ml_get_buf_len(). Also do not
set ml_line_textlen in ml_replace_len() if "has_props" is set,
because "len_arg" also includes the size of text properties in
that case. (zeertzjq)
closes: #14183
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 12 Mar 2024 22:00:04 +0100 |
parents | 4da97f213d15 |
children | fd15dc02c223 |
line wrap: on
line diff
--- a/src/quickfix.c +++ b/src/quickfix.c @@ -780,9 +780,9 @@ qf_get_next_buf_line(qfstate_T *state) return QF_END_OF_INPUT; p_buf = ml_get_buf(state->buf, state->buflnum, FALSE); + len = ml_get_buf_len(state->buf, state->buflnum); state->buflnum += 1; - len = (int)STRLEN(p_buf); if (len > IOSIZE - 2) { state->linebuf = qf_grow_linebuf(state, len); @@ -6196,13 +6196,14 @@ vgr_match_buflines( break; col = regmatch->endpos[0].col + (col == regmatch->endpos[0].col); - if (col > (colnr_T)STRLEN(ml_get_buf(buf, lnum, FALSE))) + if (col > ml_get_buf_len(buf, lnum)) break; } } else { char_u *str = ml_get_buf(buf, lnum, FALSE); + int line_len = ml_get_buf_len(buf, lnum); int score; int_u matches[MAX_FUZZY_MATCHES]; int_u sz = ARRAY_LENGTH(matches); @@ -6241,7 +6242,7 @@ vgr_match_buflines( if ((flags & VGR_GLOBAL) == 0) break; col = matches[pat_len - 1] + col + 1; - if (col > (colnr_T)STRLEN(str)) + if (col > line_len) break; } }