1
0
forked from aniani/vim

patch 8.1.0168: output of :marks is too short with multi-byte chars

Problem:    Output of :marks is too short with multi-byte chars. (Tony
            Mechelynck)
Solution:   Get more bytes from the text line.
This commit is contained in:
Bram Moolenaar
2018-07-08 17:57:34 +02:00
parent c89d4b3530
commit 9d5185bf9d
3 changed files with 27 additions and 5 deletions

View File

@@ -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))
{