summaryrefslogtreecommitdiffstats
path: root/src/memline.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-03-12 21:50:32 +0100
committerChristian Brabandt <cb@256bit.org>2024-03-12 21:50:32 +0100
commit94b7c3233ef534acc669b3083ed1fe59cf3a090b (patch)
treeb7d882e3b2cf90034e730023c01214b7b17294af /src/memline.c
parent5cac1a9bee0798d70a7fd80363a1f697759638e8 (diff)
patch 9.1.0172: More code can use ml_get_buf_len() instead of STRLEN()v9.1.0172
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>
Diffstat (limited to 'src/memline.c')
-rw-r--r--src/memline.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/memline.c b/src/memline.c
index 5228155262..a1c29cf0e7 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -2682,6 +2682,13 @@ ml_get_len(linenr_T lnum)
return ml_get_buf_len(curbuf, lnum);
}
+// return length (excluding the NUL) of the text after position "pos"
+ colnr_T
+ml_get_pos_len(pos_T *pos)
+{
+ return ml_get_buf_len(curbuf, curwin->w_cursor.lnum) - pos->col;
+}
+
// return length (excluding the NUL) of the cursor line
colnr_T
ml_get_curline_len(void)
@@ -3661,7 +3668,7 @@ ml_replace_len(
curbuf->b_ml.ml_line_ptr = line;
curbuf->b_ml.ml_line_len = len;
- curbuf->b_ml.ml_line_textlen = len_arg + !has_props;
+ curbuf->b_ml.ml_line_textlen = !has_props ? len_arg + 1 : 0;
curbuf->b_ml.ml_line_lnum = lnum;
curbuf->b_ml.ml_flags = (curbuf->b_ml.ml_flags | ML_LINE_DIRTY) & ~ML_EMPTY;