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.
diff --git a/src/mark.c b/src/mark.c
index dd714d8..c7395f3 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -686,10 +686,11 @@
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))
{