patch 9.0.1672: tabline highlight wrong after truncated double width label
Problem: Tabline highlight wrong after truncated double width label.
Solution: Fill up half a double width character later. (closes #12614)
diff --git a/src/buffer.c b/src/buffer.c
index 330b3b9..14eac92 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -502,7 +502,7 @@
* It can be:
* 0 buffer becomes hidden
* DOBUF_UNLOAD buffer is unloaded
- * DOBUF_DELETE buffer is unloaded and removed from buffer list
+ * DOBUF_DEL buffer is unloaded and removed from buffer list
* DOBUF_WIPE buffer is unloaded and really deleted
* DOBUF_WIPE_REUSE idem, and add to buf_reuse list
* When doing all but the first one on the current buffer, the caller should
@@ -5108,14 +5108,6 @@
STRMOVE(s + 1, p);
*s = '<';
- // Fill up for half a double-wide character.
- while (++width < maxwidth)
- {
- s = s + STRLEN(s);
- MB_CHAR2BYTES(fillchar, s);
- *s = NUL;
- }
-
--n; // count the '<'
for (; l < itemcnt; l++)
{
@@ -5124,6 +5116,14 @@
else
stl_items[l].stl_start = s;
}
+
+ // Fill up for half a double-wide character.
+ while (++width < maxwidth)
+ {
+ s = s + STRLEN(s);
+ MB_CHAR2BYTES(fillchar, s);
+ *s = NUL;
+ }
}
width = maxwidth;
}