summaryrefslogtreecommitdiffstats
path: root/src/mark.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-07-08 17:57:34 +0200
committerBram Moolenaar <Bram@vim.org>2018-07-08 17:57:34 +0200
commit9d5185bf9dfaef59e47c573a60044a21d5e29c0c (patch)
treeb71495833684a184a25b26e443921bc5a8fbe317 /src/mark.c
parentc89d4b35300b98cf68b14c89c8e1add51bd857e3 (diff)
patch 8.1.0168: output of :marks is too short with multi-byte charsv8.1.0168
Problem: Output of :marks is too short with multi-byte chars. (Tony Mechelynck) Solution: Get more bytes from the text line.
Diffstat (limited to 'src/mark.c')
-rw-r--r--src/mark.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mark.c b/src/mark.c
index dd714d800d..c7395f3a0e 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -686,10 +686,11 @@ mark_line(pos_T *mp, int lead_len)
if (mp->lnum == 0 || mp->lnum > curbuf->b_ml.ml_line_count)
return vim_strsave((char_u *)"-invalid-");
- s = vim_strnsave(skipwhite(ml_get(mp->lnum)), (int)Columns);
+ // Allow for up to 5 bytes per character.
+ s = vim_strnsave(skipwhite(ml_get(mp->lnum)), (int)Columns * 5);
if (s == NULL)
return NULL;
- /* Truncate the line to fit it in the window */
+ // Truncate the line to fit it in the window.
len = 0;
for (p = s; *p != NUL; MB_PTR_ADV(p))
{