patch 9.2.0453: vertical separator of statusline blend into active statusline
Commit:
https://github.com/vim/vim/commit/c895390e58fb080f94dcc1c60757a3d697698515
Author: Hirohito Higashi <
h.eas...@gmail.com>
Date: Fri May 8 20:57:34 2026 +0000
patch 9.2.0453: vertical separator of statusline blend into active statusline
Problem: Since v9.2.0349, the vertical separator cell at status line
rows is drawn as a space with StatusLine highlight, hiding the
user's 'fillchars' "vert" or "stl"/"stlnc" character at that
cell (after v9.2.0349)
Solution: Drop the status line blend. At status line rows the separator
cell goes back to using the status fillchar when adjacent
status lines are connected, or the vsep character otherwise.
(Same as before v9.2.0348)
Keep the VertSplitNC highlight group introduced in v9.2.0349. The
highlight (VertSplit vs VertSplitNC) is selected based on whether the
current window is adjacent to the separator at the row.
Vertical separators are redrawn on current-window changes and on
:redrawstatus[!] so the VertSplit/VertSplitNC highlight is updated
immediately.
fixes: #20089
related: #19951
closes: #20167
Co-Authored-By: Claude Opus 4.7 (1M context) <
nor...@anthropic.com>
Signed-off-by: Hirohito Higashi <
h.eas...@gmail.com>
Signed-off-by: Christian Brabandt <
c...@256bit.org>
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 677e7cc3e..6c3888508 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt* For Vim version 9.2. Last change: 2026 May 04
+*syntax.txt* For Vim version 9.2. Last change: 2026 May 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -5992,28 +5992,13 @@ EndOfBuffer Filler lines (~) after the last line in the buffer.
*hl-ErrorMsg*
ErrorMsg Error messages on the command line.
*hl-VertSplit*
-VertSplit Column separating vertically split windows that are adjacent
- to the current window. The cell character and highlight at
- each screen row depend on what is at that row on both sides
- of the separator:
- - On a status line row of the current window: the cell is
- drawn as a space with the |hl-StatusLine| highlight, so it
- visually merges into the current window's status line.
- - On any other row (including a row that is a status line
- row of the adjacent non-current window but not of the
- current window): the cell is drawn with the "vert" item of
- 'fillchars' and the VertSplit highlight.
+VertSplit Column separating vertically split windows that is adjacent
+ to the current window. Drawn with the "vert" item of
+ 'fillchars'.
*hl-VertSplitNC*
VertSplitNC Column separating vertically split windows where neither
- adjacent window is the current window. The cell character
- and highlight at each screen row depend on what is at that
- row on both sides of the separator:
- - On a status line row of either adjacent (non-current)
- window: the cell is drawn as a space with the
- |hl-StatusLineNC| highlight of that window, so it visually
- merges into that window's status line.
- - On any other row: the cell is drawn with the "vert" item
- of 'fillchars' and the VertSplitNC highlight.
+ adjacent window is the current window. Drawn with the
+ "vert" item of 'fillchars'.
By default, highlighted like |hl-VertSplit|.
*hl-Folded*
Folded Line used for closed folds.
@@ -6131,12 +6116,8 @@ SpellRare Word that is recognized by the spellchecker as one that is
This will be combined with the highlighting used otherwise.
*hl-StatusLine*
StatusLine Status line of current window.
- Also used for the vertical separator cell adjacent to the
- current window's status line. see |hl-VertSplit|.
*hl-StatusLineNC*
StatusLineNC status lines of not-current windows.
- Also used for the vertical separator cell adjacent to the
- non-current window's status line. see |hl-VertSplitNC|.
Note: If this is equal to "StatusLine", Vim will use "^^^" in
the status line of the current window.
*hl-StatusLineTerm*
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index baa574138..698e551a7 100644
--- a/runtime/syntax/vim.vim
+++ b/runtime/syntax/vim.vim
@@ -2,7 +2,7 @@
" Language: Vim script
" Maintainer: Hirohito Higashi <h.east.727 ATMARK
gmail.com>
" Doug Kearns <
dougk...@gmail.com>
-" Last Change: 2026 Apr 28
+" Last Change: 2026 May 08
" Former Maintainer: Charles E. Campbell
" DO NOT CHANGE DIRECTLY.
diff --git a/src/drawscreen.c b/src/drawscreen.c
index cecfcccb6..751e09aa3 100644
--- a/src/drawscreen.c
+++ b/src/drawscreen.c
@@ -620,7 +620,10 @@ win_redr_status(win_T *wp, int ignore_pum UNUSED)
for (i = 0; i < wp->w_status_height; i++)
{
int r = row + i;
- fillchar = sep_cell_at_row(&attr, wp, r);
+ if (stl_connected(wp))
+ fillchar = fillchar_status(&attr, wp);
+ else
+ fillchar = fillchar_vsep(&attr, wp, r);
screen_putchar(fillchar, r, W_ENDCOL(wp), attr);
}
}
@@ -3431,13 +3434,6 @@ redraw_statuslines(void)
if (ret)
pop_highlight_overrides();
}
- if (redraw_vseps)
- {
- redraw_vseps = FALSE;
- FOR_ALL_WINDOWS(wp)
- if (wp->w_vsep_width > 0)
- draw_vsep_win(wp, 0);
- }
if (redraw_tabline)
draw_tabline();
diff --git a/src/proto/
screen.pro b/src/proto/
screen.pro
index afaa86287..a1d5714d8 100644
--- a/src/proto/
screen.pro
+++ b/src/proto/
screen.pro
@@ -49,7 +49,6 @@ void draw_tabline(void);
void get_trans_bufname(buf_T *buf);
int fillchar_status(int *attr, win_T *wp);
int fillchar_vsep(int *attr, win_T *wp, int row);
-int sep_cell_at_row(int *attr, win_T *wp, int row);
int redrawing(void);
int messaging(void);
void comp_col(void);
diff --git a/src/screen.c b/src/screen.c
index ec2babfef..a482c400a 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -1155,7 +1155,9 @@ skip_opacity:
{
if (!skip_for_popup(row, col + coloff))
{
- int c = sep_cell_at_row(&hl, wp, row);
+ int c;
+
+ c = fillchar_vsep(&hl, wp, row);
if (ScreenLines[off_to] != (schar_T)c
|| (enc_utf8 && (int)ScreenLinesUC[off_to]
!= (c >= 0x80 ? c : 0))
@@ -1207,22 +1209,40 @@ rl_mirror(char_u *str)
/*
* Draw the vertical separator right of window "wp" starting with line "row".
+ * Includes status line rows so the VertSplit/VertSplitNC highlight is
+ * refreshed after a current window change even for non-current windows
+ * whose status lines are not redrawn.
*/
void
draw_vsep_win(win_T *wp, int row)
{
- int hl;
-
if (!wp->w_vsep_width)
return;
- // Draw the vertical separator right of this window, row by row, so
- // that the cell can differ per row depending on adjacent windows.
- for (int r = W_WINROW(wp) + row; r < W_WINROW(wp) + wp->w_height; ++r)
+ int content_end = W_WINROW(wp) + wp->w_height;
+
+ // Content rows: VertSplit/VertSplitNC based on adjacency.
+ for (int r = W_WINROW(wp) + row; r < content_end; ++r)
{
- int c = sep_cell_at_row(&hl, wp, r);
+ int hl;
+ int c = fillchar_vsep(&hl, wp, r);
screen_fill(r, r + 1, W_ENDCOL(wp), W_ENDCOL(wp) + 1, c, ' ', hl);
}
+
+ // Status line rows: when the status line is connected with the right
+ // neighbour the separator cell is the status line fillchar; otherwise
+ // it is the vsep char.
+ if (wp->w_status_height != 0)
+ {
+ int hl;
+ int c;
+ if (stl_connected(wp))
+ c = fillchar_status(&hl, wp);
+ else
+ c = fillchar_vsep(&hl, wp, content_end);
+ for (int r = content_end; r < content_end + wp->w_status_height; ++r)
+ screen_fill(r, r + 1, W_ENDCOL(wp), W_ENDCOL(wp) + 1, c, ' ', hl);
+ }
}
/*
@@ -5231,10 +5251,11 @@ vsep_row_is_curwin(win_T *wp, int row)
return true;
// Check if curwin is immediately to the right of wp's separator and
- // "row" is within curwin's row range (including the winbar).
+ // "row" is within curwin's row range (winbar + content + status line).
if (curwin->w_wincol == W_ENDCOL(wp) + wp->w_vsep_width
&& row >= curwin->w_winrow
- && row < W_WINROW(curwin) + curwin->w_height)
+ && row < W_WINROW(curwin) + curwin->w_height
+ + curwin->w_status_height)
return true;
return false;
@@ -5243,7 +5264,8 @@ vsep_row_is_curwin(win_T *wp, int row)
/*
* Get the character to use in a separator between vertically split windows.
* Get its attributes in "*attr".
- * "row" is the screen row number used to determine VertSplit or VertSplitNC.
+ * Use VertSplit when the separator is adjacent to the current window,
+ * VertSplitNC otherwise.
*/
int
fillchar_vsep(int *attr, win_T *wp, int row)
@@ -5263,81 +5285,6 @@ fillchar_vsep(int *attr, win_T *wp, int row)
return wp->w_fill_chars.vert;
}
-/*
- * Find the window immediately to the right of "wp"'s right separator at
- * screen row "row". Returns NULL if there is none.
- */
- static win_T *
-right_neighbor_at_row(win_T *wp, int row)
-{
- win_T *rn;
- int rcol = W_ENDCOL(wp) + wp->w_vsep_width;
-
- FOR_ALL_WINDOWS(rn)
- if (rn->w_wincol == rcol
- && row >= rn->w_winrow
- && row < W_WINROW(rn) + rn->w_height + rn->w_status_height)
- return rn;
- return NULL;
-}
-
-/*
- * Return true if window "wn" has its status line at screen row "row".
- */
- static bool
-win_status_at(win_T *wn, int row)
-{
- return wn != NULL && wn->w_status_height > 0
- && row >= W_WINROW(wn) + wn->w_height
- && row < W_WINROW(wn) + wn->w_height + wn->w_status_height;
-}
-
-/*
- * Decide the character and highlight to draw at the separator cell on the
- * right edge of window "wp" at screen row "row". Returns the character via
- * the return value and sets "*attr" to the highlight attribute.
- *
- * Rule:
- * 1. If curwin is on either side of the separator at this row:
- * - At curwin's status line row: draw a space with StatusLine highlight
- * so curwin's status line extends across the separator.
- * - Otherwise (curwin's content row): draw the vsep char with VertSplit.
- * 2. If curwin is not adjacent here:
- * - If the right neighbor has its status line at this row: draw a space
- * with the right neighbor's StatusLineNC.
- * - Else if "wp" has its status line at this row: draw a space with
- * wp's StatusLineNC.
- * - Else (both sides have content): draw the vsep char with VertSplitNC.
- */
- int
-sep_cell_at_row(int *attr, win_T *wp, int row)
-{
- win_T *rn = right_neighbor_at_row(wp, row);
- bool curwin_adjacent = (wp == curwin) || (rn == curwin);
-
- if (curwin_adjacent)
- {
- if (win_status_at(curwin, row))
- {
- (void)fillchar_status(attr, curwin);
- return ' ';
- }
- return fillchar_vsep(attr, wp, row);
- }
-
- if (win_status_at(rn, row))
- {
- (void)fillchar_status(attr, rn);
- return ' ';
- }
- if (win_status_at(wp, row))
- {
- (void)fillchar_status(attr, wp);
- return ' ';
- }
- return fillchar_vsep(attr, wp, row);
-}
-
/*
* Return TRUE if redrawing should currently be done.
*/
diff --git a/src/testdir/dumps/Test_VertSplitNC_2.dump b/src/testdir/dumps/Test_VertSplitNC_2.dump
index 8afa526ac..c0da105f9 100644
--- a/src/testdir/dumps/Test_VertSplitNC_2.dump
+++ b/src/testdir/dumps/Test_VertSplitNC_2.dump
@@ -8,5 +8,5 @@
|V|e|r|t|S|p|l|i|t|N|C| |t|e|s|t| @8||+0#40ff4011&|V+0#0000000&|e|r|t|S|p|l|i|t|N|C| |t|e|s|t| @7||+0#40ff4011&|V+0#0000000&|e|r|t|S|p|l|i|t|N|C| |t|e|s|t| @7
|V|e|r|t|S|p|l|i|t|N|C| |t|e|s|t| @8||+0#40ff4011&|V+0#0000000&|e|r|t|S|p|l|i|t|N|C| |t|e|s|t| @7||+0#40ff4011&|V+0#0000000&|e|r|t|S|p|l|i|t|N|C| |t|e|s|t| @7
|V|e|r|t|S|p|l|i|t|N|C| |t|e|s|t| @8||+0#40ff4011&|V+0#0000000&|e|r|t|S|p|l|i|t|N|C| |t|e|s|t| @7||+0#40ff4011&|V+0#0000000&|e|r|t|S|p|l|i|t|N|C| |t|e|s|t| @7
-|<+0#0000001#a8a8a8255|o| |N|a|m|e|]| |[|+|]| |1|,|1| @5|T|o|p| +0#ffffff16#0000e05|<| |N|a|m|e|]| |[|+|]| |1|,|1| @5|T|o|p| |<+0#0000001#a8a8a8255| |N|a|m|e|]| |[|+|]| |1|,|1| @5|T|o|p
+|<+0#0000001#a8a8a8255|o| |N|a|m|e|]| |[|+|]| |1|,|1| @5|T|o|p| |<+0#ffffff16#0000e05| |N|a|m|e|]| |[|+|]| |1|,|1| @5|T|o|p| |<+0#0000001#a8a8a8255| |N|a|m|e|]| |[|+|]| |1|,|1| @5|T|o|p
| +0#0000000#ffffff0@74
diff --git a/src/testdir/dumps/Test_VertSplitNC_3.dump b/src/testdir/dumps/Test_VertSplitNC_3.dump
index 614de055e..0922ede59 100644
--- a/src/testdir/dumps/Test_VertSplitNC_3.dump
+++ b/src/testdir/dumps/Test_VertSplitNC_3.dump
@@ -8,5 +8,5 @@
|V|e|r|t|S|p|l|i|t|N|C| |t|e|s|t| @8||+0#6c6c6c255&|V+0#0000000&|e|r|t|S|p|l|i|t|N|C| |t|e|s|t| @7||+0#40ff4011&|V+0#0000000&|e|r|t|S|p|l|i|t|N|C| |t|e|s|t| @7
|V|e|r|t|S|p|l|i|t|N|C| |t|e|s|t| @8||+0#6c6c6c255&|V+0#0000000&|e|r|t|S|p|l|i|t|N|C| |t|e|s|t| @7||+0#40ff4011&|V+0#0000000&|e|r|t|S|p|l|i|t|N|C| |t|e|s|t| @7
|V|e|r|t|S|p|l|i|t|N|C| |t|e|s|t| @8||+0#6c6c6c255&|V+0#0000000&|e|r|t|S|p|l|i|t|N|C| |t|e|s|t| @7||+0#40ff4011&|V+0#0000000&|e|r|t|S|p|l|i|t|N|C| |t|e|s|t| @7
-|<+0#0000001#a8a8a8255|o| |N|a|m|e|]| |[|+|]| |1|,|1| @5|T|o|p| |<| |N|a|m|e|]| |[|+|]| |1|,|1| @5|T|o|p| +0#ffffff16#0000e05|<| |N|a|m|e|]| |[|+|]| |1|,|1| @5|T|o|p
+|<+0#0000001#a8a8a8255|o| |N|a|m|e|]| |[|+|]| |1|,|1| @5|T|o|p| |<| |N|a|m|e|]| |[|+|]| |1|,|1| @5|T|o|p| |<+0#ffffff16#0000e05| |N|a|m|e|]| |[|+|]| |1|,|1| @5|T|o|p
| +0#0000000#ffffff0@74
diff --git a/src/testdir/dumps/Test_VertSplitNC_fc_1.dump b/src/testdir/dumps/Test_VertSplitNC_fc_1.dump
deleted file mode 100644
index 6aa0dbf44..000000000
--- a/src/testdir/dumps/Test_VertSplitNC_fc_1.dump
+++ /dev/null
@@ -1,12 +0,0 @@
->f+0&#ffffff0|i|l@1|c|h|a|r|s| |t|e|s|t| @10||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9||+0#6c6c6c255&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9
-|f|i|l@1|c|h|a|r|s| |t|e|s|t| @10||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9||+0#6c6c6c255&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9
-|f|i|l@1|c|h|a|r|s| |t|e|s|t| @10||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9||+0#6c6c6c255&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9
-|f|i|l@1|c|h|a|r|s| |t|e|s|t| @10||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9||+0#6c6c6c255&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9
-|f|i|l@1|c|h|a|r|s| |t|e|s|t| @10||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9||+0#6c6c6c255&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9
-|f|i|l@1|c|h|a|r|s| |t|e|s|t| @10||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9||+0#6c6c6c255&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9
-|f|i|l@1|c|h|a|r|s| |t|e|s|t| @10||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9||+0#6c6c6c255&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9
-|f|i|l@1|c|h|a|r|s| |t|e|s|t| @10||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9||+0#6c6c6c255&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9
-|f|i|l@1|c|h|a|r|s| |t|e|s|t| @10||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9||+0#6c6c6c255&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9
-|f|i|l@1|c|h|a|r|s| |t|e|s|t| @10||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9||+0#6c6c6c255&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9
-|<+0#ffffff16#0000e05|o| |N|a|m|e|]| |[|+|]|=|1|,|1|=@5|T|o|p| |<+0#0000001#a8a8a8255| |N|a|m|e|]| |[|+|]|-|1|,|1|-@5|T|o|p| |<| |N|a|m|e|]| |[|+|]|-|1|,|1|-@5|T|o|p
-| +0#0000000#ffffff0@74
diff --git a/src/testdir/dumps/Test_VertSplitNC_fc_2.dump b/src/testdir/dumps/Test_VertSplitNC_fc_2.dump
deleted file mode 100644
index 58652b933..000000000
--- a/src/testdir/dumps/Test_VertSplitNC_fc_2.dump
+++ /dev/null
@@ -1,12 +0,0 @@
-|f+0&#ffffff0|i|l@1|c|h|a|r|s| |t|e|s|t| @10||+0#40ff4011&>f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9
-|f|i|l@1|c|h|a|r|s| |t|e|s|t| @10||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9
-|f|i|l@1|c|h|a|r|s| |t|e|s|t| @10||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9
-|f|i|l@1|c|h|a|r|s| |t|e|s|t| @10||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9
-|f|i|l@1|c|h|a|r|s| |t|e|s|t| @10||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9
-|f|i|l@1|c|h|a|r|s| |t|e|s|t| @10||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9
-|f|i|l@1|c|h|a|r|s| |t|e|s|t| @10||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9
-|f|i|l@1|c|h|a|r|s| |t|e|s|t| @10||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9
-|f|i|l@1|c|h|a|r|s| |t|e|s|t| @10||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9
-|f|i|l@1|c|h|a|r|s| |t|e|s|t| @10||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9||+0#40ff4011&|f+0#0000000&|i|l@1|c|h|a|r|s| |t|e|s|t| @9
-|<+0#0000001#a8a8a8255|o| |N|a|m|e|]| |[|+|]|-|1|,|1|-@5|T|o|p| +0#ffffff16#0000e05|<| |N|a|m|e|]| |[|+|]|=|1|,|1|=@5|T|o|p| |<+0#0000001#a8a8a8255| |N|a|m|e|]| |[|+|]|-|1|,|1|-@5|T|o|p
-| +0#0000000#ffffff0@74
diff --git a/src/testdir/dumps/Test_VertSplitNC_stl_1.dump b/src/testdir/dumps/Test_VertSplitNC_stl_1.dump
deleted file mode 100644
index 5e4d8bb00..000000000
--- a/src/testdir/dumps/Test_VertSplitNC_stl_1.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-|m+0&#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#40ff4011&>m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|m|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#40ff4011&|m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|m|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#40ff4011&|m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|m|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#ffffff16#0000e05|[|N|o| |N|a|m|e|]| @20|1|,|1| |T|o|p
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#ffffff16#0000e05@37
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#ffffff16#0000e05@37
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#ffffff16#0000e05@37
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#6c6c6c255&|m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|m|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#6c6c6c255&|m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|m|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#0000001#a8a8a8255|[|N|o| |N|a|m|e|]| @20|1|,|1| |T|o|p
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#0000001#a8a8a8255@37
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#0000001#a8a8a8255@37
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#0000001#a8a8a8255@37
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#6c6c6c255&|m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|m|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#6c6c6c255&|m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|[+0#0000001#a8a8a8255|N|o| |N|a|m|e|]| @20|1|,|1| |T|o|p| |[|N|o| |N|a|m|e|]| @20|1|,|1| |T|o|p
-| @74
-@75
-@75
-| +0#0000000#ffffff0@74
diff --git a/src/testdir/dumps/Test_VertSplitNC_stl_2.dump b/src/testdir/dumps/Test_VertSplitNC_stl_2.dump
deleted file mode 100644
index c7ceac388..000000000
--- a/src/testdir/dumps/Test_VertSplitNC_stl_2.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-|m+0&#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#6c6c6c255&|m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|m|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#6c6c6c255&|m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|m|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#6c6c6c255&|m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|m|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#0000001#a8a8a8255|[|N|o| |N|a|m|e|]| @20|1|,|1| |T|o|p
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#0000001#a8a8a8255@37
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#0000001#a8a8a8255@37
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#0000001#a8a8a8255@37
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#40ff4011&>m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|m|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#40ff4011&|m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|m|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#ffffff16#0000e05|[|N|o| |N|a|m|e|]| @20|1|,|1| |T|o|p
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#ffffff16#0000e05@37
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#ffffff16#0000e05@37
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#ffffff16#0000e05@37
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#6c6c6c255&|m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|m|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#6c6c6c255&|m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|[+0#0000001#a8a8a8255|N|o| |N|a|m|e|]| @20|1|,|1| |T|o|p| |[|N|o| |N|a|m|e|]| @20|1|,|1| |T|o|p
-| @74
-@75
-@75
-| +0#0000000#ffffff0@74
diff --git a/src/testdir/dumps/Test_VertSplitNC_stl_3.dump b/src/testdir/dumps/Test_VertSplitNC_stl_3.dump
deleted file mode 100644
index 2d4189ed6..000000000
--- a/src/testdir/dumps/Test_VertSplitNC_stl_3.dump
+++ /dev/null
@@ -1,20 +0,0 @@
-|m+0&#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#6c6c6c255&|m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|m|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#6c6c6c255&|m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|m|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#6c6c6c255&|m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|m|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#0000001#a8a8a8255|[|N|o| |N|a|m|e|]| @20|1|,|1| |T|o|p
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#0000001#a8a8a8255@37
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#0000001#a8a8a8255@37
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#0000001#a8a8a8255@37
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#6c6c6c255&|m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|m|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#6c6c6c255&|m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|m|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#0000001#a8a8a8255|[|N|o| |N|a|m|e|]| @20|1|,|1| |T|o|p
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#0000001#a8a8a8255@37
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#0000001#a8a8a8255@37
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22| +0#0000001#a8a8a8255@37
-|m+0#0000000#ffffff0|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#40ff4011&>m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|m|u|l|t|i| |s|t|l| |t|e|s|t| @22||+0#40ff4011&|m+0#0000000&|u|l|t|i| |s|t|l| |t|e|s|t| @22
-|[+0#0000001#a8a8a8255|N|o| |N|a|m|e|]| @20|1|,|1| |T|o|p| +0#ffffff16#0000e05|[|N|o| |N|a|m|e|]| @20|1|,|1| |T|o|p
-| +0#0000001#a8a8a8255@36| +0#ffffff16#0000e05@37
-| +0#0000001#a8a8a8255@36| +0#ffffff16#0000e05@37
-| +0#0000001#a8a8a8255@36| +0#ffffff16#0000e05@37
-| +0#0000000#ffffff0@74
diff --git a/src/testdir/dumps/Test_VertSplitNC_whl2.dump b/src/testdir/dumps/Test_VertSplitNC_whl2.dump
index 825775e59..9701df25b 100644
--- a/src/testdir/dumps/Test_VertSplitNC_whl2.dump
+++ b/src/testdir/dumps/Test_VertSplitNC_whl2.dump
@@ -8,5 +8,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|[+1#0000000&|N|o| |N|a|m|e|]| @9|0|,|0|-|1| @9|A|l@1| +3&&|[|N|o| |N|a|m|e|]| @9|0|,|0|-|1| @9|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| @9|0|,|0|-|1| @9|A|l@1| |[+3&&|N|o| |N|a|m|e|]| @9|0|,|0|-|1| @9|A|l@1
| +0&&@74
diff --git a/src/testdir/dumps/Test_VertSplitNC_winbar_1.dump b/src/testdir/dumps/Test_VertSplitNC_winbar_1.dump
index 4fbee462d..ce880fa30 100644
--- a/src/testdir/dumps/Test_VertSplitNC_winbar_1.dump
+++ b/src/testdir/dumps/Test_VertSplitNC_winbar_1.dump
@@ -8,5 +8,5 @@
|w|i|n|b|a|r| |t|e|s|t| @25||+0#40ff4011&|w+0#0000000&|i|n|b|a|r| |t|e|s|t| @25
|w|i|n|b|a|r| |t|e|s|t| @25||+0#40ff4011&|w+0#0000000&|i|n|b|a|r| |t|e|s|t| @25
|w|i|n|b|a|r| |t|e|s|t| @25||+0#40ff4011&|w+0#0000000&|i|n|b|a|r| |t|e|s|t| @25
-|[+0#0000001#a8a8a8255|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|T|o|p| +0#ffffff16#0000e05|[|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|T|o|p
+|[+0#0000001#a8a8a8255|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|T|o|p| |[+0#ffffff16#0000e05|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|T|o|p
| +0#0000000#ffffff0@74
diff --git a/src/testdir/dumps/Test_diff_anchors_07.dump b/src/testdir/dumps/Test_diff_anchors_07.dump
index eda58e9fd..310fa6544 100644
--- a/src/testdir/dumps/Test_diff_anchors_07.dump
+++ b/src/testdir/dumps/Test_diff_anchors_07.dump
@@ -16,5 +16,5 @@
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@22||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|2+0#0000000#5fd7ff255| @20||+1&#ffffff0| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@22||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|3+0#0000000#5fd7ff255| @20||+1&#ffffff0| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@21
|~+0&#ffffff0| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
-|X+1#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|2| @3|1|,|1| @5|A|l@1| +3&&|X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|X+1#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|2| @3|1|,|1| @5|A|l@1| |X+3&&|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_01.dump b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_01.dump
index 5616d5f37..a0ffa9f30 100644
--- a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_01.dump
+++ b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_01.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|X+1#0000000&|d|i|f|i|l|e|1| @10|1|,|1| @11|A|l@1| +3&&|X|d|i|f|i|l|e|2| @10|1|,|1| @11|A|l@1
+|X+1#0000000&|d|i|f|i|l|e|1| @10|1|,|1| @11|A|l@1| |X+3&&|d|i|f|i|l|e|2| @10|1|,|1| @11|A|l@1
|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_02.dump b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_02.dump
index 3d66db8d6..9e5c9dc94 100644
--- a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_02.dump
+++ b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_02.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|X+1#0000000&|d|i|f|i|l|e|1| @10|3|,|1| @11|B|o|t| +3&&|X|d|i|f|i|l|e|2| @10|3|,|1| @11|B|o|t
+|X+1#0000000&|d|i|f|i|l|e|1| @10|3|,|1| @11|B|o|t| |X+3&&|d|i|f|i|l|e|2| @10|3|,|1| @11|B|o|t
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_03.dump b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_03.dump
index fdab54144..76f861768 100644
--- a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_03.dump
+++ b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_03.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|X+1#0000000&|d|i|f|i|l|e|1| @10|3|,|1| @11|B|o|t| +3&&|X|d|i|f|i|l|e|2| @10|3|,|1| @11|B|o|t
+|X+1#0000000&|d|i|f|i|l|e|1| @10|3|,|1| @11|B|o|t| |X+3&&|d|i|f|i|l|e|2| @10|3|,|1| @11|B|o|t
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_04.dump b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_04.dump
index 705446a3d..1c069d8de 100644
--- a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_04.dump
+++ b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_04.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|X+1#0000000&|d|i|f|i|l|e|1| @10|3|,|1| @11|B|o|t| +3&&|X|d|i|f|i|l|e|2| @10|3|,|1| @11|B|o|t
+|X+1#0000000&|d|i|f|i|l|e|1| @10|3|,|1| @11|B|o|t| |X+3&&|d|i|f|i|l|e|2| @10|3|,|1| @11|B|o|t
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_05.dump b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_05.dump
index 5daf6573d..87bbc572e 100644
--- a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_05.dump
+++ b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_05.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|X+1#0000000&|d|i|f|i|l|e|1| @10|1|,|1| @11|A|l@1| +3&&|X|d|i|f|i|l|e|2| @10|1|,|1| @11|A|l@1
+|X+1#0000000&|d|i|f|i|l|e|1| @10|1|,|1| @11|A|l@1| |X+3&&|d|i|f|i|l|e|2| @10|1|,|1| @11|A|l@1
|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_06.dump b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_06.dump
index 6cae25e1d..1f5917cf4 100644
--- a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_06.dump
+++ b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_06.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|X+1#0000000&|d|i|f|i|l|e|1| @10|3|,|1| @11|B|o|t| +3&&|X|d|i|f|i|l|e|2| @10|3|,|1| @11|B|o|t
+|X+1#0000000&|d|i|f|i|l|e|1| @10|3|,|1| @11|B|o|t| |X+3&&|d|i|f|i|l|e|2| @10|3|,|1| @11|B|o|t
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_07.dump b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_07.dump
index 705446a3d..1c069d8de 100644
--- a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_07.dump
+++ b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_07.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|X+1#0000000&|d|i|f|i|l|e|1| @10|3|,|1| @11|B|o|t| +3&&|X|d|i|f|i|l|e|2| @10|3|,|1| @11|B|o|t
+|X+1#0000000&|d|i|f|i|l|e|1| @10|3|,|1| @11|B|o|t| |X+3&&|d|i|f|i|l|e|2| @10|3|,|1| @11|B|o|t
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_08.dump b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_08.dump
index a2ade506e..aadabe077 100644
--- a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_08.dump
+++ b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_08.dump
@@ -16,5 +16,5 @@
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
-|X+1#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|2| @3|1|,|1| @5|A|l@1| +3&&|X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|X+1#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|2| @3|1|,|1| @5|A|l@1| |X+3&&|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_13.dump b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_13.dump
index af9992427..99cb0ded0 100644
--- a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_13.dump
+++ b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_13.dump
@@ -16,5 +16,5 @@
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
-|X+1#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|2| @3|1|,|1| @5|A|l@1| +3&&|X|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
+|X+1#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|2| @3|1|,|1| @5|A|l@1| |X+3&&|d|i|f|i|l|e|3| @3|1|,|1| @5|A|l@1
|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_14.dump b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_14.dump
index c6a418a4b..3c35c7741 100644
--- a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_14.dump
+++ b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_14.dump
@@ -16,5 +16,5 @@
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
-|X+1#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|2| @3|5|,|1| @5|B|o|t| +3&&|X|d|i|f|i|l|e|3| @3|5|,|1| @5|B|o|t
+|X+1#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|2| @3|5|,|1| @5|B|o|t| |X+3&&|d|i|f|i|l|e|3| @3|5|,|1| @5|B|o|t
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_15.dump b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_15.dump
index cf6bce8d0..432cadb94 100644
--- a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_15.dump
+++ b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_15.dump
@@ -16,5 +16,5 @@
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
-|X+1#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|2| @3|5|,|1| @5|B|o|t| +3&&|X|d|i|f|i|l|e|3| @3|5|,|1| @5|B|o|t
+|X+1#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|2| @3|5|,|1| @5|B|o|t| |X+3&&|d|i|f|i|l|e|3| @3|5|,|1| @5|B|o|t
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_16.dump b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_16.dump
index 4bff316f4..b95c2661a 100644
--- a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_16.dump
+++ b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_16.dump
@@ -16,5 +16,5 @@
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
-|X+1#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|2| @3|5|,|1| @5|B|o|t| +3&&|X|d|i|f|i|l|e|3| @3|5|,|1| @5|B|o|t
+|X+1#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|2| @3|5|,|1| @5|B|o|t| |X+3&&|d|i|f|i|l|e|3| @3|5|,|1| @5|B|o|t
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_17.dump b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_17.dump
index 949693315..7daaf7a9a 100644
--- a/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_17.dump
+++ b/src/testdir/dumps/Test_diff_anchors_scrollbind_topline_17.dump
@@ -16,5 +16,5 @@
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
-|X+1#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|2| @3|5|,|1| @5|B|o|t| +3&&|X|d|i|f|i|l|e|3| @3|5|,|1| @5|B|o|t
+|X+1#0000000&|d|i|f|i|l|e|1| @4|1|,|1| @5|A|l@1| |X|d|i|f|i|l|e|2| @3|5|,|1| @5|B|o|t| |X+3&&|d|i|f|i|l|e|3| @3|5|,|1| @5|B|o|t
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_get_put_linematch_16.dump b/src/testdir/dumps/Test_diff_get_put_linematch_16.dump
index eeb984d68..d4649d205 100644
--- a/src/testdir/dumps/Test_diff_get_put_linematch_16.dump
+++ b/src/testdir/dumps/Test_diff_get_put_linematch_16.dump
@@ -16,5 +16,5 @@
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|D+0#0000000#5fd7ff255|E|F| @31
| +0#0000e05#a8a8a8255@1|s+0#0000000#ffffff0|o|m|e|t|h|i|n|g| @25||+1&&| +0#0000e05#a8a8a8255@1|s+0#0000000#ffffff0|o|m|e|t|h|i|n|g| @25
|~+0#4040ff13&| @35||+1#0000000&|~+0#4040ff13&| @35
-|X+1#0000000&|d|i|f|i|l|e|1| |[|+|]| @6|9|,|1| @11|A|l@1| +3&&|X|d|i|f|i|l|e|2| @10|6|,|1| @11|A|l@1
+|X+1#0000000&|d|i|f|i|l|e|1| |[|+|]| @6|9|,|1| @11|A|l@1| |X+3&&|d|i|f|i|l|e|2| @10|6|,|1| @11|A|l@1
|:+0&&|d|i|f@1|p|u|t| @66
diff --git a/src/testdir/dumps/Test_diff_get_put_linematch_17.dump b/src/testdir/dumps/Test_diff_get_put_linematch_17.dump
index b8426a39a..69737fa58 100644
--- a/src/testdir/dumps/Test_diff_get_put_linematch_17.dump
+++ b/src/testdir/dumps/Test_diff_get_put_linematch_17.dump
@@ -16,5 +16,5 @@
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|D+0#0000000#5fd7ff255|E|F| @31
| +0#0000e05#a8a8a8255@1|s+0#0000000#ffffff0|o|m|e|t|h|i|n|g| @25||+1&&| +0#0000e05#a8a8a8255@1|s+0#0000000#ffffff0|o|m|e|t|h|i|n|g| @25
|~+0#4040ff13&| @35||+1#0000000&|~+0#4040ff13&| @35
-|X+1#0000000&|d|i|f|i|l|e|1| |[|+|]| @6|9|,|1| @11|A|l@1| +3&&|X|d|i|f|i|l|e|2| @10|8|,|1| @11|A|l@1
+|X+1#0000000&|d|i|f|i|l|e|1| |[|+|]| @6|9|,|1| @11|A|l@1| |X+3&&|d|i|f|i|l|e|2| @10|8|,|1| @11|A|l@1
|:+0&&|d|i|f@1|p|u|t| @66
diff --git a/src/testdir/dumps/Test_diff_get_put_linematch_18.dump b/src/testdir/dumps/Test_diff_get_put_linematch_18.dump
index 2b94da955..49ab24387 100644
--- a/src/testdir/dumps/Test_diff_get_put_linematch_18.dump
+++ b/src/testdir/dumps/Test_diff_get_put_linematch_18.dump
@@ -16,5 +16,5 @@
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|D+0#0000000#5fd7ff255|E|F| @31
| +0#0000e05#a8a8a8255@1|s+0#0000000#ffffff0|o|m|e|t|h|i|n|g| @25||+1&&| +0#0000e05#a8a8a8255@1|s+0#0000000#ffffff0|o|m|e|t|h|i|n|g| @25
|~+0#4040ff13&| @35||+1#0000000&|~+0#4040ff13&| @35
-|X+1#0000000&|d|i|f|i|l|e|1| |[|+|]| @6|6|,|1| @11|A|l@1| +3&&|X|d|i|f|i|l|e|2| @10|9|,|1| @11|A|l@1
+|X+1#0000000&|d|i|f|i|l|e|1| |[|+|]| @6|6|,|1| @11|A|l@1| |X+3&&|d|i|f|i|l|e|2| @10|9|,|1| @11|A|l@1
|:+0&&|d|i|f@1|p|u|t| @66
diff --git a/src/testdir/dumps/Test_diff_get_put_linematch_19.dump b/src/testdir/dumps/Test_diff_get_put_linematch_19.dump
index 8fdd9f608..cbea3e560 100644
--- a/src/testdir/dumps/Test_diff_get_put_linematch_19.dump
+++ b/src/testdir/dumps/Test_diff_get_put_linematch_19.dump
@@ -16,5 +16,5 @@
| +0#0000e05#a8a8a8255@1|D+0#0000000#ffffff0|E|F| @31||+1&&| +0#0000e05#a8a8a8255@1|D+0#0000000#ffffff0|E|F| @31
| +0#0000e05#a8a8a8255@1|s+0#0000000#ffffff0|o|m|e|t|h|i|n|g| @25||+1&&| +0#0000e05#a8a8a8255@1>s+0#0000000#ffffff0|o|m|e|t|h|i|n|g| @25
|~+0#4040ff13&| @35||+1#0000000&|~+0#4040ff13&| @35
-|X+1#0000000&|d|i|f|i|l|e|1| |[|+|]| @6|1|3|,|1| @10|A|l@1| +3&&|X|d|i|f|i|l|e|2| @10|1|7|,|1| @10|A|l@1
+|X+1#0000000&|d|i|f|i|l|e|1| |[|+|]| @6|1|3|,|1| @10|A|l@1| |X+3&&|d|i|f|i|l|e|2| @10|1|7|,|1| @10|A|l@1
|:+0&&|d|i|f@1|p|u|t| @66
diff --git a/src/testdir/dumps/Test_diff_get_put_linematch_3.dump b/src/testdir/dumps/Test_diff_get_put_linematch_3.dump
index ce905130e..cb62a9ef7 100644
--- a/src/testdir/dumps/Test_diff_get_put_linematch_3.dump
+++ b/src/testdir/dumps/Test_diff_get_put_linematch_3.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|X+1#0000000&|d|i|f|i|l|e|1| @10|5|,|1| @11|A|l@1| +3&&|X|d|i|f|i|l|e|2| |[|+|]| @6|5|,|1| @11|A|l@1
+|X+1#0000000&|d|i|f|i|l|e|1| @10|5|,|1| @11|A|l@1| |X+3&&|d|i|f|i|l|e|2| |[|+|]| @6|5|,|1| @11|A|l@1
|:+0&&|5|,|1|0|d|i|f@1|g|e|t| @62
diff --git a/src/testdir/dumps/Test_diff_get_put_linematch_4.dump b/src/testdir/dumps/Test_diff_get_put_linematch_4.dump
index c6ea6ddc8..16c2cd874 100644
--- a/src/testdir/dumps/Test_diff_get_put_linematch_4.dump
+++ b/src/testdir/dumps/Test_diff_get_put_linematch_4.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|X+1#0000000&|d|i|f|i|l|e|1| @10|5|,|1| @11|A|l@1| +3&&|X|d|i|f|i|l|e|2| |[|+|]| @6|5|,|1| @11|A|l@1
+|X+1#0000000&|d|i|f|i|l|e|1| @10|5|,|1| @11|A|l@1| |X+3&&|d|i|f|i|l|e|2| |[|+|]| @6|5|,|1| @11|A|l@1
|:+0&&|4|,|1|7|d|i|f@1|g|e|t| @62
diff --git a/src/testdir/dumps/Test_diff_inline_multiline_07.dump b/src/testdir/dumps/Test_diff_inline_multiline_07.dump
index b76d549b2..de58a6ac3 100644
--- a/src/testdir/dumps/Test_diff_inline_multiline_07.dump
+++ b/src/testdir/dumps/Test_diff_inline_multiline_07.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|X+1#0000000&|d|i|f|i|l|e|1| @10|1|,|1| @11|A|l@1| +3&&|X|d|i|f|i|l|e|2| @10|1|,|1| @11|A|l@1
+|X+1#0000000&|d|i|f|i|l|e|1| @10|1|,|1| @11|A|l@1| |X+3&&|d|i|f|i|l|e|2| @10|1|,|1| @11|A|l@1
|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_inline_multiline_08.dump b/src/testdir/dumps/Test_diff_inline_multiline_08.dump
index 51c35f5af..901ea4699 100644
--- a/src/testdir/dumps/Test_diff_inline_multiline_08.dump
+++ b/src/testdir/dumps/Test_diff_inline_multiline_08.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|X+1#0000000&|d|i|f|i|l|e|1| @10|1|,|1| @11|A|l@1| +3&&|X|d|i|f|i|l|e|2| @10|1|,|1| @11|A|l@1
+|X+1#0000000&|d|i|f|i|l|e|1| @10|1|,|1| @11|A|l@1| |X+3&&|d|i|f|i|l|e|2| @10|1|,|1| @11|A|l@1
|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_inline_multiline_09.dump b/src/testdir/dumps/Test_diff_inline_multiline_09.dump
index dc36ed8ff..91f59cda2 100644
--- a/src/testdir/dumps/Test_diff_inline_multiline_09.dump
+++ b/src/testdir/dumps/Test_diff_inline_multiline_09.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|X+1#0000000&|d|i|f|i|l|e|1| @10|1|,|1| @11|A|l@1| +3&&|X|d|i|f|i|l|e|2| @10|1|,|1| @11|A|l@1
+|X+1#0000000&|d|i|f|i|l|e|1| @10|1|,|1| @11|A|l@1| |X+3&&|d|i|f|i|l|e|2| @10|1|,|1| @11|A|l@1
|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_inline_multiline_10.dump b/src/testdir/dumps/Test_diff_inline_multiline_10.dump
index ad86c4684..212c24797 100644
--- a/src/testdir/dumps/Test_diff_inline_multiline_10.dump
+++ b/src/testdir/dumps/Test_diff_inline_multiline_10.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|X+1#0000000&|d|i|f|i|l|e|1| @10|1|,|1| @11|A|l@1| +3&&|X|d|i|f|i|l|e|2| @10|1|,|1| @11|A|l@1
+|X+1#0000000&|d|i|f|i|l|e|1| @10|1|,|1| @11|A|l@1| |X+3&&|d|i|f|i|l|e|2| @10|1|,|1| @11|A|l@1
|:+0&&> @73
diff --git a/src/testdir/dumps/Test_diff_rnu_01.dump b/src/testdir/dumps/Test_diff_rnu_01.dump
index d51d66674..dc7c0f910 100644
--- a/src/testdir/dumps/Test_diff_rnu_01.dump
+++ b/src/testdir/dumps/Test_diff_rnu_01.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_rnu_02.dump b/src/testdir/dumps/Test_diff_rnu_02.dump
index d33a2ee0a..32ffc4003 100644
--- a/src/testdir/dumps/Test_diff_rnu_02.dump
+++ b/src/testdir/dumps/Test_diff_rnu_02.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|1| @11|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|1| @11|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|1| @11|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|1| @11|A|l@1
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_rnu_03.dump b/src/testdir/dumps/Test_diff_rnu_03.dump
index 0d29b8408..8c8b93844 100644
--- a/src/testdir/dumps/Test_diff_rnu_03.dump
+++ b/src/testdir/dumps/Test_diff_rnu_03.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|3|,|1| @11|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|3|,|1| @11|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|3|,|1| @11|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|3|,|1| @11|A|l@1
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_scroll_1.dump b/src/testdir/dumps/Test_diff_scroll_1.dump
index 971346101..ee53c35bb 100644
--- a/src/testdir/dumps/Test_diff_scroll_1.dump
+++ b/src/testdir/dumps/Test_diff_scroll_1.dump
@@ -8,5 +8,5 @@
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|d+0#0000000#5fd7ff255|o|l|o|r| @29
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|s+0#0000000#5fd7ff255|i|t| @31
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|a+0#0000000#5fd7ff255|m|e|t|,| @29
-|X+1&#ffffff0|l|e|f|t| @13|5|,|0|-|1| @9|T|o|p| +3&&|X|r|i|g|h|t| @12|5|,|0|-|1| @9|T|o|p
+|X+1&#ffffff0|l|e|f|t| @13|5|,|0|-|1| @9|T|o|p| |X+3&&|r|i|g|h|t| @12|5|,|0|-|1| @9|T|o|p
|"+0&&|X|r|i|g|h|t|"| |3@1|L|,| |2|6|3|B| @56
diff --git a/src/testdir/dumps/Test_diff_scroll_2.dump b/src/testdir/dumps/Test_diff_scroll_2.dump
index d6cd1b9c9..4cac386a6 100644
--- a/src/testdir/dumps/Test_diff_scroll_2.dump
+++ b/src/testdir/dumps/Test_diff_scroll_2.dump
@@ -8,5 +8,5 @@
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|d+0#0000000#5fd7ff255|o|l|o|r| @29
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|s+0#0000000#5fd7ff255|i|t| @31
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|a+0#0000000#5fd7ff255|m|e|t|,| @29
-|X+1&#ffffff0|l|e|f|t| @13|6|,|1| @11|T|o|p| +3&&|X|r|i|g|h|t| @12|6|,|1| @11|T|o|p
+|X+1&#ffffff0|l|e|f|t| @13|6|,|1| @11|T|o|p| |X+3&&|r|i|g|h|t| @12|6|,|1| @11|T|o|p
|"+0&&|X|r|i|g|h|t|"| |3@1|L|,| |2|6|3|B| @56
diff --git a/src/testdir/dumps/Test_diff_scroll_change_03.dump b/src/testdir/dumps/Test_diff_scroll_change_03.dump
index 5a4088975..6d0c8600f 100644
--- a/src/testdir/dumps/Test_diff_scroll_change_03.dump
+++ b/src/testdir/dumps/Test_diff_scroll_change_03.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|7|,|3| @11|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|1|5|,|3| @10|B|o|t
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|7|,|3| @11|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|5|,|3| @10|B|o|t
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_topline_1.dump b/src/testdir/dumps/Test_diff_topline_1.dump
index 5b5122621..1d4c9145f 100644
--- a/src/testdir/dumps/Test_diff_topline_1.dump
+++ b/src/testdir/dumps/Test_diff_topline_1.dump
@@ -16,5 +16,5 @@
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|2+0#0000000#5fd7ff255|4| @32
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|2+0#0000000#5fd7ff255|5| @32
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|2+0#0000000#5fd7ff255|6| @32
-|[+1&#ffffff0|N|o| |N|a|m|e|]| |[|+|]| @5|1|0|,|1| @10|4|2|%| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|2|1|,|1| @10|1|9|%
+|[+1&#ffffff0|N|o| |N|a|m|e|]| |[|+|]| @5|1|0|,|1| @10|4|2|%| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|2|1|,|1| @10|1|9|%
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_topline_2.dump b/src/testdir/dumps/Test_diff_topline_2.dump
index a0f3db79c..2d28bd373 100644
--- a/src/testdir/dumps/Test_diff_topline_2.dump
+++ b/src/testdir/dumps/Test_diff_topline_2.dump
@@ -16,5 +16,5 @@
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|2+0#0000000#5fd7ff255|4| @32
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|2+0#0000000#5fd7ff255|5| @32
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|2+0#0000000#5fd7ff255|6| @32
-|[+1&#ffffff0|N|o| |N|a|m|e|]| |[|+|]| @5|1|0|,|1| @10|4|2|%| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|2|1|,|1| @10|1|9|%
+|[+1&#ffffff0|N|o| |N|a|m|e|]| |[|+|]| @5|1|0|,|1| @10|4|2|%| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|2|1|,|1| @10|1|9|%
|9+0&&| @73
diff --git a/src/testdir/dumps/Test_diff_topline_4.dump b/src/testdir/dumps/Test_diff_topline_4.dump
index 94414b1e7..6043d7ad7 100644
--- a/src/testdir/dumps/Test_diff_topline_4.dump
+++ b/src/testdir/dumps/Test_diff_topline_4.dump
@@ -16,5 +16,5 @@
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|1+0#0000000#5fd7ff255|9| @32
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|2+0#0000000#5fd7ff255|0| @32
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|2+0#0000000#5fd7ff255|1| @32
-|[+1&#ffffff0|N|o| |N|a|m|e|]| |[|+|]| @5|1|0|,|1| @10|T|o|p| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|1|0|,|1| @10|T|o|p
+|[+1&#ffffff0|N|o| |N|a|m|e|]| |[|+|]| @5|1|0|,|1| @10|T|o|p| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|0|,|1| @10|T|o|p
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_with_cul_bri_01.dump b/src/testdir/dumps/Test_diff_with_cul_bri_01.dump
index 3855fa17c..8151088e0 100644
--- a/src/testdir/dumps/Test_diff_with_cul_bri_01.dump
+++ b/src/testdir/dumps/Test_diff_with_cul_bri_01.dump
@@ -16,5 +16,5 @@
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
-|<+1#0000000&|o| |N|a|m|e|]| |[|+|]| |1|,|1| @5|A|l@1| +3&&|<| |N|a|m|e|]| |[|+|]| |1|,|1| @5|A|l@1| |[+1&&|N|o| |N|a|m|e|]| @2|0|,|0|-|1| @3|A|l@1
+|<+1#0000000&|o| |N|a|m|e|]| |[|+|]| |1|,|1| @5|A|l@1| |<+3&&| |N|a|m|e|]| |[|+|]| |1|,|1| @5|A|l@1| |[+1&&|N|o| |N|a|m|e|]| @2|0|,|0|-|1| @3|A|l@1
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_with_cul_bri_02.dump b/src/testdir/dumps/Test_diff_with_cul_bri_02.dump
index c1ae50d6d..62126f6b3 100644
--- a/src/testdir/dumps/Test_diff_with_cul_bri_02.dump
+++ b/src/testdir/dumps/Test_diff_with_cul_bri_02.dump
@@ -16,5 +16,5 @@
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
-|<+1#0000000&|o| |N|a|m|e|]| |[|+|]| |2|,|1| @5|A|l@1| +3&&|<| |N|a|m|e|]| |[|+|]| |2|,|1| @5|A|l@1| |[+1&&|N|o| |N|a|m|e|]| @2|0|,|0|-|1| @3|A|l@1
+|<+1#0000000&|o| |N|a|m|e|]| |[|+|]| |2|,|1| @5|A|l@1| |<+3&&| |N|a|m|e|]| |[|+|]| |2|,|1| @5|A|l@1| |[+1&&|N|o| |N|a|m|e|]| @2|0|,|0|-|1| @3|A|l@1
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_with_cul_bri_03.dump b/src/testdir/dumps/Test_diff_with_cul_bri_03.dump
index bdf8be065..f32be7385 100644
--- a/src/testdir/dumps/Test_diff_with_cul_bri_03.dump
+++ b/src/testdir/dumps/Test_diff_with_cul_bri_03.dump
@@ -16,5 +16,5 @@
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
-|<+1#0000000&|o| |N|a|m|e|]| |[|+|]| |3|,|1| @5|A|l@1| +3&&|<| |N|a|m|e|]| |[|+|]| |3|,|1| @5|A|l@1| |[+1&&|N|o| |N|a|m|e|]| @2|0|,|0|-|1| @3|A|l@1
+|<+1#0000000&|o| |N|a|m|e|]| |[|+|]| |3|,|1| @5|A|l@1| |<+3&&| |N|a|m|e|]| |[|+|]| |3|,|1| @5|A|l@1| |[+1&&|N|o| |N|a|m|e|]| @2|0|,|0|-|1| @3|A|l@1
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_with_cul_bri_04.dump b/src/testdir/dumps/Test_diff_with_cul_bri_04.dump
index aa3ce8e5d..9489f9ab0 100644
--- a/src/testdir/dumps/Test_diff_with_cul_bri_04.dump
+++ b/src/testdir/dumps/Test_diff_with_cul_bri_04.dump
@@ -16,5 +16,5 @@
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
-|<+1#0000000&|o| |N|a|m|e|]| |[|+|]| |4|,|1| @5|A|l@1| +3&&|<| |N|a|m|e|]| |[|+|]| |4|,|1| @5|A|l@1| |[+1&&|N|o| |N|a|m|e|]| @2|0|,|0|-|1| @3|A|l@1
+|<+1#0000000&|o| |N|a|m|e|]| |[|+|]| |4|,|1| @5|A|l@1| |<+3&&| |N|a|m|e|]| |[|+|]| |4|,|1| @5|A|l@1| |[+1&&|N|o| |N|a|m|e|]| @2|0|,|0|-|1| @3|A|l@1
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_with_cursorline_01.dump b/src/testdir/dumps/Test_diff_with_cursorline_01.dump
index 0b9bcb9bd..31d8b2a18 100644
--- a/src/testdir/dumps/Test_diff_with_cursorline_01.dump
+++ b/src/testdir/dumps/Test_diff_with_cursorline_01.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_with_cursorline_02.dump b/src/testdir/dumps/Test_diff_with_cursorline_02.dump
index 68014acb2..9aef7d1fa 100644
--- a/src/testdir/dumps/Test_diff_with_cursorline_02.dump
+++ b/src/testdir/dumps/Test_diff_with_cursorline_02.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|3|,|1| @11|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|1| @11|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|3|,|1| @11|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|1| @11|A|l@1
| +0&&@74
diff --git a/src/testdir/dumps/Test_diff_with_cursorline_03.dump b/src/testdir/dumps/Test_diff_with_cursorline_03.dump
index 595de46ce..5bc9e1316 100644
--- a/src/testdir/dumps/Test_diff_with_cursorline_03.dump
+++ b/src/testdir/dumps/Test_diff_with_cursorline_03.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|4|,|1| @11|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|3|,|1| @11|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|4|,|1| @11|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|3|,|1| @11|A|l@1
| +0&&@74
diff --git a/src/testdir/dumps/Test_display_fillchars_1.dump b/src/testdir/dumps/Test_display_fillchars_1.dump
index 9568e09c5..b0b1642bf 100644
--- a/src/testdir/dumps/Test_display_fillchars_1.dump
+++ b/src/testdir/dumps/Test_display_fillchars_1.dump
@@ -2,11 +2,11 @@
|w|i|n|d|o|w| |2| @28|++1&&|w+0&&|i|n|d|o|w| |1| @28
|w|i|n|d|o|w| |2| @28|++1&&|w+0&&|i|n|d|o|w| |1| @28
|y+0#4040ff13&| @35|++1#0000000&|x+0#4040ff13&| @35
-|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]|b@5|1|,|1|b@11|A|l@1| |[|N|o| |N|a|m|e|]| |[|+|]|a@5|1|,|1|a@11|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]|b@5|1|,|1|b@11|A|l@1|b|[|N|o| |N|a|m|e|]| |[|+|]|a@5|1|,|1|a@11|A|l@1
>w+0&&|i|n|d|o|w| |4| @28|>+1&&|w+0&&|i|n|d|o|w| |3| @28
|w|i|n|d|o|w| |4| @28|>+1&&|w+0&&|i|n|d|o|w| |3| @28
|w|i|n|d|o|w| |4| @28|>+1&&|w+0&&|i|n|d|o|w| |3| @28
|o+0#4040ff13&| @35|>+1#0000000&|z+0#4040ff13&| @35
|o| @35|>+1#0000000&|z+0#4040ff13&| @35
-|[+3#0000000&|N|o| |N|a|m|e|]| |[|+|]|4@5|1|,|1|4@11|A|l@1| |[+1&&|N|o| |N|a|m|e|]| |[|+|]|c@5|1|,|1|c@11|A|l@1
+|[+3#0000000&|N|o| |N|a|m|e|]| |[|+|]|4@5|1|,|1|4@11|A|l@1|4|[+1&&|N|o| |N|a|m|e|]| |[|+|]|c@5|1|,|1|c@11|A|l@1
| +0&&@74
diff --git a/src/testdir/dumps/Test_display_fillchars_2.dump b/src/testdir/dumps/Test_display_fillchars_2.dump
index f62488861..b983face0 100644
--- a/src/testdir/dumps/Test_display_fillchars_2.dump
+++ b/src/testdir/dumps/Test_display_fillchars_2.dump
@@ -2,11 +2,11 @@
|w|i|n|d|o|w| |2| @28|++1&&|w+0&&|i|n|d|o|w| |1| @28
|w|i|n|d|o|w| |2| @28|++1&&|w+0&&|i|n|d|o|w| |1| @28
|y+0#4040ff13&| @35|++1#0000000&|x+0#4040ff13&| @35
-|[+3#0000000&|N|o| |N|a|m|e|]| |[|+|]|2@5|1|,|1|2@11|A|l@1| |[+1&&|N|o| |N|a|m|e|]| |[|+|]|a@5|1|,|1|a@11|A|l@1
+|[+3#0000000&|N|o| |N|a|m|e|]| |[|+|]|2@5|1|,|1|2@11|A|l@1|2|[+1&&|N|o| |N|a|m|e|]| |[|+|]|a@5|1|,|1|a@11|A|l@1
|w+0&&|i|n|d|o|w| |4| @28|>+1&&|w+0&&|i|n|d|o|w| |3| @28
|w|i|n|d|o|w| |4| @28|>+1&&|w+0&&|i|n|d|o|w| |3| @28
|w|i|n|d|o|w| |4| @28|>+1&&|w+0&&|i|n|d|o|w| |3| @28
|o+0#4040ff13&| @35|>+1#0000000&|z+0#4040ff13&| @35
|o| @35|>+1#0000000&|z+0#4040ff13&| @35
-|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]|d@5|1|,|1|d@11|A|l@1| |[|N|o| |N|a|m|e|]| |[|+|]|c@5|1|,|1|c@11|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]|d@5|1|,|1|d@11|A|l@1|d|[|N|o| |N|a|m|e|]| |[|+|]|c@5|1|,|1|c@11|A|l@1
|:+0&&|w|i|n|c|m|d| |k| @65
diff --git a/src/testdir/dumps/Test_hor_scroll_1.dump b/src/testdir/dumps/Test_hor_scroll_1.dump
index 65b16f3cc..615afb8e1 100644
--- a/src/testdir/dumps/Test_hor_scroll_1.dump
+++ b/src/testdir/dumps/Test_hor_scroll_1.dump
@@ -4,5 +4,5 @@
@19| +0&#e0e0e08||+1&#ffffff0| +0&&@19| +0&#e0e0e08| +0&#ffffff0@32
@19| +0&#e0e0e08||+1&#ffffff0| +0&&@19| +0&#e0e0e08| +0&#ffffff0@32
|~+0#4040ff13&| @18||+1#0000000&|~+0#4040ff13&| @52
-|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|2|1| @2|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @22|1|,|2|1| @10|A|l@1
+|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|2|1| @2|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @22|1|,|2|1| @10|A|l@1
| +0&&@74
diff --git a/src/testdir/dumps/Test_hor_scroll_2.dump b/src/testdir/dumps/Test_hor_scroll_2.dump
index 2b6afa0ec..dfe2e98ae 100644
--- a/src/testdir/dumps/Test_hor_scroll_2.dump
+++ b/src/testdir/dumps/Test_hor_scroll_2.dump
@@ -4,5 +4,5 @@
@10| +0&#e0e0e08| +0&#ffffff0@8||+1&&| +0&&@29| +0&#e0e0e08| +0&#ffffff0@22
@10| +0&#e0e0e08| +0&#ffffff0@8||+1&&| +0&&@29| +0&#e0e0e08| +0&#ffffff0@22
|~+0#4040ff13&| @18||+1#0000000&|~+0#4040ff13&| @52
-|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|3|1| @2|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @22|1|,|3|1| @10|A|l@1
+|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|3|1| @2|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @22|1|,|3|1| @10|A|l@1
| +0&&@74
diff --git a/src/testdir/dumps/Test_hor_scroll_3.dump b/src/testdir/dumps/Test_hor_scroll_3.dump
index 93f94a0ec..db9fd6ff1 100644
--- a/src/testdir/dumps/Test_hor_scroll_3.dump
+++ b/src/testdir/dumps/Test_hor_scroll_3.dump
@@ -4,5 +4,5 @@
@19| +0&#e0e0e08||+1&#ffffff0| +0&&@19| +0&#e0e0e08| +0&#ffffff0@32
@19| +0&#e0e0e08||+1&#ffffff0| +0&&@19| +0&#e0e0e08| +0&#ffffff0@32
|~+0#4040ff13&| @18||+1#0000000&|~+0#4040ff13&| @52
-|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|2|1| @2|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @22|1|,|2|1| @10|A|l@1
+|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|2|1| @2|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @22|1|,|2|1| @10|A|l@1
|:+0&&|w|i|n|d|o| |:|s|e|t| |c|u|r|s|o|r|l|i|n|e| @52
diff --git a/src/testdir/dumps/Test_hor_scroll_4.dump b/src/testdir/dumps/Test_hor_scroll_4.dump
index 830423ad3..81821604d 100644
--- a/src/testdir/dumps/Test_hor_scroll_4.dump
+++ b/src/testdir/dumps/Test_hor_scroll_4.dump
@@ -4,5 +4,5 @@
@10| +0&#e0e0e08| +0&#ffffff0@8||+1&&| +0&&@29| +0&#e0e0e08| +0&#ffffff0@22
@10| +0&#e0e0e08| +0&#ffffff0@8||+1&&| +0&&@29| +0&#e0e0e08| +0&#ffffff0@22
|~+0#4040ff13&| @18||+1#0000000&|~+0#4040ff13&| @52
-|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|3|1| @2|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @22|1|,|3|1| @10|A|l@1
+|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|3|1| @2|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @22|1|,|3|1| @10|A|l@1
|:+0&&|w|i|n|d|o| |:|s|e|t| |c|u|r|s|o|r|l|i|n|e| @52
diff --git a/src/testdir/dumps/Test_hor_scroll_5.dump b/src/testdir/dumps/Test_hor_scroll_5.dump
index d706910fc..f2986f379 100644
--- a/src/testdir/dumps/Test_hor_scroll_5.dump
+++ b/src/testdir/dumps/Test_hor_scroll_5.dump
@@ -4,5 +4,5 @@
@20||+1&&| +0&&@53
@20||+1&&| +0&&@53
|~+0#4040ff13&| @18||+1#0000000&|~+0#4040ff13&| @52
-|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|4|1| @2|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @22|1|,|4|1| @10|A|l@1
+|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|4|1| @2|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @22|1|,|4|1| @10|A|l@1
|:+0&&|w|i|n|d|o| |:|s|e|t| |n|o|c|u|r|s|o|r|l|i|n|e| |n|o|c|u|r|s|o|r|c|o|l|u|m|n| @35
diff --git a/src/testdir/dumps/Test_laststatus_vsplit_row_height3_1.dump b/src/testdir/dumps/Test_laststatus_vsplit_row_height3_1.dump
index 82ea8b8f8..6d24637e3 100644
--- a/src/testdir/dumps/Test_laststatus_vsplit_row_height3_1.dump
+++ b/src/testdir/dumps/Test_laststatus_vsplit_row_height3_1.dump
@@ -3,6 +3,6 @@
|~| @73
|[+3#0000000&|N|o| |N|a|m|e|]| @47|0|,|0|-|1| @9|A|l@1
| +0&&@36||+1&&| +0&&@36
-|~+0#4040ff13&| @35| +1#0000000&|[|N|o| |N|a|m|e|]| @9|0|,|0|-|1| @9|A|l@1
+|~+0#4040ff13&| @35||+1#0000000&|[|N|o| |N|a|m|e|]| @9|0|,|0|-|1| @9|A|l@1
|[|N|o| |N|a|m|e|]| @9|0|,|0|-|1| @9|A|l@1| @37
| +0&&@74
diff --git a/src/testdir/dumps/Test_linematch_3diffs1.dump b/src/testdir/dumps/Test_linematch_3diffs1.dump
index a010d2761..d8f23e84b 100644
--- a/src/testdir/dumps/Test_linematch_3diffs1.dump
+++ b/src/testdir/dumps/Test_linematch_3diffs1.dump
@@ -16,5 +16,5 @@
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
|~| @23||+1#0000000&|~+0#4040ff13&| @22||+1#0000000&|~+0#4040ff13&| @22
-|X+1#0000000&|d|i|f|i|l|e|1| @4|1|,|0|-|1| @3|A|l@1| |X|d|i|f|i|l|e|2| @3|1|,|0|-|1| @3|A|l@1| +3&&|X|d|i|f|i|l|e|3| @3|1|,|0|-|1| @3|A|l@1
+|X+1#0000000&|d|i|f|i|l|e|1| @4|1|,|0|-|1| @3|A|l@1| |X|d|i|f|i|l|e|2| @3|1|,|0|-|1| @3|A|l@1| |X+3&&|d|i|f|i|l|e|3| @3|1|,|0|-|1| @3|A|l@1
|"+0&&|X|d|i|f|i|l|e|3|"| |5|L|,| |4|5|B| @56
diff --git a/src/testdir/dumps/Test_listchars_01.dump b/src/testdir/dumps/Test_listchars_01.dump
index a7de31069..72fff585c 100644
--- a/src/testdir/dumps/Test_listchars_01.dump
+++ b/src/testdir/dumps/Test_listchars_01.dump
@@ -6,5 +6,5 @@
|~| @18||+1#0000000&|~+0#4040ff13&| @3||+1#0000000&|~+0#4040ff13&| @31
|~| @18||+1#0000000&|~+0#4040ff13&| @3||+1#0000000&|~+0#4040ff13&| @31
|~| @18||+1#0000000&|~+0#4040ff13&| @3||+1#0000000&|~+0#4040ff13&| @31
-|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|1| @3|A|l@1| |<|]| |1|,| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @3|1|,|1| @9|A|l@1
+|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|1| @3|A|l@1| |<|]| |1|,| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @3|1|,|1| @9|A|l@1
| +0&&@59
diff --git a/src/testdir/dumps/Test_listchars_02.dump b/src/testdir/dumps/Test_listchars_02.dump
index d7e05df9a..b7be52e89 100644
--- a/src/testdir/dumps/Test_listchars_02.dump
+++ b/src/testdir/dumps/Test_listchars_02.dump
@@ -6,5 +6,5 @@
|~| @18||+1#0000000&|~+0#4040ff13&| @2||+1#0000000&|~+0#4040ff13&| @32
|~| @18||+1#0000000&|~+0#4040ff13&| @2||+1#0000000&|~+0#4040ff13&| @32
|~| @18||+1#0000000&|~+0#4040ff13&| @2||+1#0000000&|~+0#4040ff13&| @32
-|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|1| @3|A|l@1| |<| |1|,| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @3|1|,|1| @10|A|l@1
+|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|1| @3|A|l@1| |<| |1|,| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @3|1|,|1| @10|A|l@1
| +0&&@59
diff --git a/src/testdir/dumps/Test_listchars_03.dump b/src/testdir/dumps/Test_listchars_03.dump
index d54b3e50f..13aca6d2f 100644
--- a/src/testdir/dumps/Test_listchars_03.dump
+++ b/src/testdir/dumps/Test_listchars_03.dump
@@ -6,5 +6,5 @@
|~| @18||+1#0000000&|~+0#4040ff13&| @1||+1#0000000&|~+0#4040ff13&| @33
|~| @18||+1#0000000&|~+0#4040ff13&| @1||+1#0000000&|~+0#4040ff13&| @33
|~| @18||+1#0000000&|~+0#4040ff13&| @1||+1#0000000&|~+0#4040ff13&| @33
-|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|1| @3|A|l@1| |<| |1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @4|1|,|1| @10|A|l@1
+|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|1| @3|A|l@1| |<| |1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @4|1|,|1| @10|A|l@1
| +0&&@59
diff --git a/src/testdir/dumps/Test_listchars_04.dump b/src/testdir/dumps/Test_listchars_04.dump
index 694e6eadc..e62c5aff2 100644
--- a/src/testdir/dumps/Test_listchars_04.dump
+++ b/src/testdir/dumps/Test_listchars_04.dump
@@ -6,5 +6,5 @@
|~| @18||+1#0000000&|~+0#4040ff13&| ||+1#0000000&|~+0#4040ff13&| @34
|~| @18||+1#0000000&|~+0#4040ff13&| ||+1#0000000&|~+0#4040ff13&| @34
|~| @18||+1#0000000&|~+0#4040ff13&| ||+1#0000000&|~+0#4040ff13&| @34
-|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|1| @3|A|l@1| |<|1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @4|1|,|1| @11|A|l@1
+|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|1| @3|A|l@1| |<|1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @4|1|,|1| @11|A|l@1
| +0&&@59
diff --git a/src/testdir/dumps/Test_listchars_05.dump b/src/testdir/dumps/Test_listchars_05.dump
index 7ecb79738..89b759fb4 100644
--- a/src/testdir/dumps/Test_listchars_05.dump
+++ b/src/testdir/dumps/Test_listchars_05.dump
@@ -6,5 +6,5 @@
|~| @18||+1#0000000&|~+0#4040ff13&||+1#0000000&|~+0#4040ff13&| @35
|~| @18||+1#0000000&|~+0#4040ff13&||+1#0000000&|~+0#4040ff13&| @35
|~| @18||+1#0000000&|~+0#4040ff13&||+1#0000000&|~+0#4040ff13&| @35
-|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|1| @3|A|l@1| |<| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1
+|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|1| @3|A|l@1| |<| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1
| +0&&@59
diff --git a/src/testdir/dumps/Test_listchars_06.dump b/src/testdir/dumps/Test_listchars_06.dump
index 9176c5fde..9f4b5d30e 100644
--- a/src/testdir/dumps/Test_listchars_06.dump
+++ b/src/testdir/dumps/Test_listchars_06.dump
@@ -6,5 +6,5 @@
|~| @18||+1#0000000&|~+0#4040ff13&| @3||+1#0000000&|~+0#4040ff13&| @31
|~| @18||+1#0000000&|~+0#4040ff13&| @3||+1#0000000&|~+0#4040ff13&| @31
|~| @18||+1#0000000&|~+0#4040ff13&| @3||+1#0000000&|~+0#4040ff13&| @31
-|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|1| @3|A|l@1| +3&&|<|]| |1|,| |[+1&&|N|o| |N|a|m|e|]| |[|+|]| @3|1|,|1| @9|A|l@1
+|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|1| @3|A|l@1| |<+3&&|]| |1|,| |[+1&&|N|o| |N|a|m|e|]| |[|+|]| @3|1|,|1| @9|A|l@1
|:+0&&|s|e|t| |n|o|w|r|a|p| |f|o|l|d|c|o|l|u|m|n|=|4| @35
diff --git a/src/testdir/dumps/Test_listchars_07.dump b/src/testdir/dumps/Test_listchars_07.dump
index 572bf248f..ad81656a5 100644
--- a/src/testdir/dumps/Test_listchars_07.dump
+++ b/src/testdir/dumps/Test_listchars_07.dump
@@ -6,5 +6,5 @@
|~| @18||+1#0000000&|~+0#4040ff13&||+1#0000000&|~+0#4040ff13&| @35
|~| @18||+1#0000000&|~+0#4040ff13&||+1#0000000&|~+0#4040ff13&| @35
|~| @18||+1#0000000&|~+0#4040ff13&||+1#0000000&|~+0#4040ff13&| @35
-|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|1| @3|A|l@1| +3&&|<| |[+1&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1
+|<+1#0000000&|a|m|e|]| |[|+|]| |1|,|1| @3|A|l@1| |<+3&&| |[+1&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1
|:+0&&|s|e|t| |n|o|w|r|a|p| |f|o|l|d|c|o|l|u|m|n|=|4| @35
diff --git a/src/testdir/dumps/Test_popup_prop_not_visible_01.dump b/src/testdir/dumps/Test_popup_prop_not_visible_01.dump
index 20f4d4658..dbcfda116 100644
--- a/src/testdir/dumps/Test_popup_prop_not_visible_01.dump
+++ b/src/testdir/dumps/Test_popup_prop_not_visible_01.dump
@@ -6,5 +6,5 @@
|~+0#4040ff13&| @41||+1#0000000&|~+0#4040ff13&| @29
|~| @41||+1#0000000&|~+0#4040ff13&| @29
|~| @41||+1#0000000&|~+0#4040ff13&| @29
-|[+1#0000000&|N|o| |N|a|m|e|]| @15|0|,|0|-|1| @9|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @2|1|,|0|-|1| @6|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| @15|0|,|0|-|1| @9|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @2|1|,|0|-|1| @6|A|l@1
| +0&&@74
diff --git a/src/testdir/dumps/Test_popup_prop_not_visible_01a.dump b/src/testdir/dumps/Test_popup_prop_not_visible_01a.dump
index e048949de..0b97cb832 100644
--- a/src/testdir/dumps/Test_popup_prop_not_visible_01a.dump
+++ b/src/testdir/dumps/Test_popup_prop_not_visible_01a.dump
@@ -6,5 +6,5 @@
|~+0#4040ff13&| @41||+1#0000000&|~+0#4040ff13&| @29
|~| @41||+1#0000000&|~+0#4040ff13&| @29
|~| @41||+1#0000000&|~+0#4040ff13&| @29
-|[+1#0000000&|N|o| |N|a|m|e|]| @15|0|,|0|-|1| @9|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @2|1|,|0|-|1| @6|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| @15|0|,|0|-|1| @9|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @2|1|,|0|-|1| @6|A|l@1
|:+0&&|c|a|l@1| |p|o|p|u|p|_|h|i|d|e|(|g|:|s|o|m|e|_|i|d|)| @47
diff --git a/src/testdir/dumps/Test_popup_prop_not_visible_01b.dump b/src/testdir/dumps/Test_popup_prop_not_visible_01b.dump
index c91b20100..e8a5c2e35 100644
--- a/src/testdir/dumps/Test_popup_prop_not_visible_01b.dump
+++ b/src/testdir/dumps/Test_popup_prop_not_visible_01b.dump
@@ -6,5 +6,5 @@
|~+0#4040ff13&| @41||+1#0000000&|~+0#4040ff13&| @29
|~| @41||+1#0000000&|~+0#4040ff13&| @29
|~| @41||+1#0000000&|~+0#4040ff13&| @29
-|[+1#0000000&|N|o| |N|a|m|e|]| @15|0|,|0|-|1| @9|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @2|1|,|0|-|1| @6|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| @15|0|,|0|-|1| @9|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @2|1|,|0|-|1| @6|A|l@1
|:+0&&|c|a|l@1| |p|o|p|u|p|_|s|h|o|w|(|g|:|s|o|m|e|_|i|d|)| @47
diff --git a/src/testdir/dumps/Test_popup_prop_not_visible_02.dump b/src/testdir/dumps/Test_popup_prop_not_visible_02.dump
index e4b2aec90..1d1a5531c 100644
--- a/src/testdir/dumps/Test_popup_prop_not_visible_02.dump
+++ b/src/testdir/dumps/Test_popup_prop_not_visible_02.dump
@@ -6,5 +6,5 @@
|~+0#4040ff13#ffffff0| @55||+1#0000000&|~+0#4040ff13&| @15
|~| @55||+1#0000000&|~+0#4040ff13&| @15
|~| @55||+1#0000000&|~+0#4040ff13&| @15
-|[+1#0000000&|N|o| |N|a|m|e|]| @29|0|,|0|-|1| @9|A|l@1| +3&&|<|m|e|]| |[|+|]| |1|,|0|-|1| @2
+|[+1#0000000&|N|o| |N|a|m|e|]| @29|0|,|0|-|1| @9|A|l@1| |<+3&&|m|e|]| |[|+|]| |1|,|0|-|1| @2
|:+0&&|v|e|r|t| |r|e|s|i|z|e| |-|1|4| @58
diff --git a/src/testdir/dumps/Test_popup_prop_not_visible_03.dump b/src/testdir/dumps/Test_popup_prop_not_visible_03.dump
index a056cd867..caaa881fe 100644
--- a/src/testdir/dumps/Test_popup_prop_not_visible_03.dump
+++ b/src/testdir/dumps/Test_popup_prop_not_visible_03.dump
@@ -6,5 +6,5 @@
|~+0#4040ff13&| @63||+1#0000000&|~+0#4040ff13&| @7
|~| @63||+1#0000000&|~+0#4040ff13&| @7
|~| @63||+1#0000000&|~+0#4040ff13&| @7
-|[+1#0000000&|N|o| |N|a|m|e|]| @37|0|,|0|-|1| @9|A|l@1| +3&&|<|[|+|]| |1|,|0|-
+|[+1#0000000&|N|o| |N|a|m|e|]| @37|0|,|0|-|1| @9|A|l@1| |<+3&&|[|+|]| |1|,|0|-
|:+0&&|v|e|r|t| |r|e|s|i|z|e| |-|8| @59
diff --git a/src/testdir/dumps/Test_prop_diff_mode_2.dump b/src/testdir/dumps/Test_prop_diff_mode_2.dump
index 453665d99..243ec0dc1 100644
--- a/src/testdir/dumps/Test_prop_diff_mode_2.dump
+++ b/src/testdir/dumps/Test_prop_diff_mode_2.dump
@@ -6,5 +6,5 @@
|~+0#4040ff13#ffffff0| @28||+1#0000000&| +0#af5f00255&@1|5| |0+0#0000000#ffd7ff255@2|9+2&#ff404010| +0&#ffd7ff255@20
|~+0#4040ff13#ffffff0| @28||+1#0000000&| +0#af5f00255&@3|<+0#0000000#ffd7ff255|t|e|x|t|>| @18
|~+0#4040ff13#ffffff0| @28||+1#0000000&|~+0#4040ff13&| @27
-|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @1|1|,|1| @8|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @1|1|,|1|-|7| @5|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @1|1|,|1| @8|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @1|1|,|1|-|7| @5|A|l@1
|:+0&&|w|i|n|d|o| |s|e|t| |n|u|m|b|e|r| @42
diff --git a/src/testdir/dumps/Test_smooth_diff_change_line_1.dump b/src/testdir/dumps/Test_smooth_diff_change_line_1.dump
index 28f2e1d99..c634f1dd3 100644
--- a/src/testdir/dumps/Test_smooth_diff_change_line_1.dump
+++ b/src/testdir/dumps/Test_smooth_diff_change_line_1.dump
@@ -16,5 +16,5 @@
|~+0#4040ff13&| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|1| @11|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|1| @11|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|1| @11|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|1| @11|A|l@1
| +0&&@74
diff --git a/src/testdir/dumps/Test_smooth_diff_change_line_2.dump b/src/testdir/dumps/Test_smooth_diff_change_line_2.dump
index 4c2d28d0e..691fe289f 100644
--- a/src/testdir/dumps/Test_smooth_diff_change_line_2.dump
+++ b/src/testdir/dumps/Test_smooth_diff_change_line_2.dump
@@ -16,5 +16,5 @@
|~+0#4040ff13&| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|4| @11|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|7| @11|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|4| @11|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|7| @11|A|l@1
|-+2&&@1| |I|N|S|E|R|T| |-@1| +0&&@62
diff --git a/src/testdir/dumps/Test_smooth_diff_change_line_3.dump b/src/testdir/dumps/Test_smooth_diff_change_line_3.dump
index e47fb5d34..c4178404d 100644
--- a/src/testdir/dumps/Test_smooth_diff_change_line_3.dump
+++ b/src/testdir/dumps/Test_smooth_diff_change_line_3.dump
@@ -16,5 +16,5 @@
|~+0#4040ff13&| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|4| @11|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|6| @11|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|4| @11|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|6| @11|A|l@1
| +0&&@74
diff --git a/src/testdir/dumps/Test_smooth_diff_change_line_3a.dump b/src/testdir/dumps/Test_smooth_diff_change_line_3a.dump
index 0c7e70c27..d13141eb2 100644
--- a/src/testdir/dumps/Test_smooth_diff_change_line_3a.dump
+++ b/src/testdir/dumps/Test_smooth_diff_change_line_3a.dump
@@ -16,5 +16,5 @@
|~+0#4040ff13&| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|4| @11|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|6| @11|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|4| @11|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|6| @11|A|l@1
| +0&&@74
diff --git a/src/testdir/dumps/Test_smooth_diff_change_line_4.dump b/src/testdir/dumps/Test_smooth_diff_change_line_4.dump
index 37ce70a75..b789df3fb 100644
--- a/src/testdir/dumps/Test_smooth_diff_change_line_4.dump
+++ b/src/testdir/dumps/Test_smooth_diff_change_line_4.dump
@@ -16,5 +16,5 @@
|~+0#4040ff13&| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|3|,|1| @11|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|3|,|1| @11|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|3|,|1| @11|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|3|,|1| @11|A|l@1
| +0&&@74
diff --git a/src/testdir/dumps/Test_switchwin_clear_pum_02.dump b/src/testdir/dumps/Test_switchwin_clear_pum_02.dump
index cf5f9dbc9..39013c09f 100644
--- a/src/testdir/dumps/Test_switchwin_clear_pum_02.dump
+++ b/src/testdir/dumps/Test_switchwin_clear_pum_02.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|w+1#0000000&|i|n|_|b| |[|+|]| @9|1|,|1|0| @10|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|9| @11|A|l@1
+|w+1#0000000&|i|n|_|b| |[|+|]| @9|1|,|1|0| @10|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|9| @11|A|l@1
|-+2&&@1| |I|N|S|E|R|T| |-@1| +0&&@62
diff --git a/src/testdir/dumps/Test_tabpanel_drawing_scrolling_3.dump b/src/testdir/dumps/Test_tabpanel_drawing_scrolling_3.dump
index 0ee2efe9d..b041b672f 100644
--- a/src/testdir/dumps/Test_tabpanel_drawing_scrolling_3.dump
+++ b/src/testdir/dumps/Test_tabpanel_drawing_scrolling_3.dump
@@ -6,5 +6,5 @@
| +1&&@19| +0#af5f00255&@1|6| ||+1#0000000&| +0#af5f00255&|3|0| |t+0#0000000&|e|x|t| |t|e|x|t| |t|e|x|t| |t
| +1&&@19| +0#af5f00255&@1|7| ||+1#0000000&| +0#af5f00255&|3|1| |t+0#0000000&|e|x|t| |t|e|x|t| |t|e|x|t| |t
| +1&&@19| +0#af5f00255&@1|8| ||+1#0000000&| +0#af5f00255&|3|2| |t+0#0000000&|e|x|t| |t|e|x|t| |t|e|x|t| |t
-| +1&&@19|<| |1|,| +3&&|<|.|t|x|t| |[|+|]| |2|8|,|1| @2|2|6|%
+| +1&&@19|<| |1|,| |<+3&&|.|t|x|t| |[|+|]| |2|8|,|1| @2|2|6|%
| +1&&@19| +0&&@24
diff --git a/src/testdir/dumps/Test_terminal_wincolor_split_MyWinCol.dump b/src/testdir/dumps/Test_terminal_wincolor_split_MyWinCol.dump
index d2e69dc82..3633ffe54 100644
--- a/src/testdir/dumps/Test_terminal_wincolor_split_MyWinCol.dump
+++ b/src/testdir/dumps/Test_terminal_wincolor_split_MyWinCol.dump
@@ -4,12 +4,12 @@
| +0#ff404010#e0e0004@36||+1#0000000#ffffff0|3+0&&| @35
| +0#ff404010#e0e0004@36||+1#0000000#ffffff0|4+0&&| @35
| +0#ff404010#e0e0004@36||+1#0000000#ffffff0|5+0&&| @35
-|!+2#ffffff16#00e0003|c|a|t| |[|r|u|n@1|i|n|g|]| @23|6+0#0000000#ffffff0| @35
+|!+2#ffffff16#00e0003|c|a|t| |[|r|u|n@1|i|n|g|]| @22||+1#0000000#ffffff0|6+0&&| @35
|h+0#00e0003#5fd7ff255|e|l@1|o| @31||+1#0000000#ffffff0|7+0&&| @35
|h+0#00e0003#5fd7ff255|e|l@1|o| @31||+1#0000000#ffffff0|8+0&&| @35
| +0#00e0003#5fd7ff255@36||+1#0000000#ffffff0|9+0&&| @35
| +0#00e0003#5fd7ff255@36||+1#0000000#ffffff0|1+0&&|0| @34
| +0#00e0003#5fd7ff255@36||+1#0000000#ffffff0|1+0&&@1| @34
| +0#00e0003#5fd7ff255@36||+1#0000000#ffffff0|1+0&&|2| @34
-|!+0#ffffff16#00e0003|c|a|t| |[|r|u|n@1|i|n|g|]| @22| +1#0000000#ffffff0|[|N|o| |N|a|m|e|]| |[|+|]| @23
+|!+0#ffffff16#00e0003|c|a|t| |[|r|u|n@1|i|n|g|]| @23|[+1#0000000#ffffff0|N|o| |N|a|m|e|]| |[|+|]| @23
|:+0&&|s|e|t| |w|i|n|c|o|l|o|r|=|M|y|W|i|n|C|o|l| @52
diff --git a/src/testdir/dumps/Test_terminal_wincolor_split_MyWinCol2.dump b/src/testdir/dumps/Test_terminal_wincolor_split_MyWinCol2.dump
index 8e5796f62..ce69e3b4d 100644
--- a/src/testdir/dumps/Test_terminal_wincolor_split_MyWinCol2.dump
+++ b/src/testdir/dumps/Test_terminal_wincolor_split_MyWinCol2.dump
@@ -4,12 +4,12 @@
| +0#ff404010#e0e0004@36||+1#0000000#ffffff0| +0#0000001#4040ff13@36
| +0#ff404010#e0e0004@36||+1#0000000#ffffff0| +0#0000001#4040ff13@36
| +0#ff404010#e0e0004@36||+1#0000000#ffffff0| +0#0000001#4040ff13@36
-|!+0#ffffff16#00e0003|c|a|t| |[|r|u|n@1|i|n|g|]| @22| +2&&|!|c|a|t| |[|r|u|n@1|i|n|g|]| @22
+|!+0#ffffff16#00e0003|c|a|t| |[|r|u|n@1|i|n|g|]| @22||+1#0000000#ffffff0|!+2#ffffff16#00e0003|c|a|t| |[|r|u|n@1|i|n|g|]| @22
|h+0#00e0003#5fd7ff255|e|l@1|o| @31||+1#0000000#ffffff0|0+0&&| @35
|h+0#00e0003#5fd7ff255|e|l@1|o| @31||+1#0000000#ffffff0|1+0&&| @35
| +0#00e0003#5fd7ff255@36||+1#0000000#ffffff0|2+0&&| @35
| +0#00e0003#5fd7ff255@36||+1#0000000#ffffff0|3+0&&| @35
| +0#00e0003#5fd7ff255@36||+1#0000000#ffffff0|4+0&&| @35
| +0#00e0003#5fd7ff255@36||+1#0000000#ffffff0|5+0&&| @35
-|!+0#ffffff16#00e0003|c|a|t| |[|r|u|n@1|i|n|g|]| @22| +1#0000000#ffffff0|[|N|o| |N|a|m|e|]| |[|+|]| @23
+|!+0#ffffff16#00e0003|c|a|t| |[|r|u|n@1|i|n|g|]| @23|[+1#0000000#ffffff0|N|o| |N|a|m|e|]| |[|+|]| @23
|:+0&&|s|e|t| |w|i|n|c|o|l|o|r|=|M|y|W|i|n|C|o|l|2| @51
diff --git a/src/testdir/dumps/Test_winhighlight_14.dump b/src/testdir/dumps/Test_winhighlight_14.dump
index 176bf6ea9..1ea869d65 100644
--- a/src/testdir/dumps/Test_winhighlight_14.dump
+++ b/src/testdir/dumps/Test_winhighlight_14.dump
@@ -4,5 +4,5 @@
|S+8&&|i|x| @33||+1&&|S+0&&|i|x| @33
|~+0#4040ff13&| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|3|,|3| @11|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|5| @11|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|3|,|3| @11|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|5| @11|A|l@1
|:+0&&|w|i|n|c|m|d| |l| @65
diff --git a/src/testdir/dumps/Test_winhighlight_15.dump b/src/testdir/dumps/Test_winhighlight_15.dump
index 7d69f21b5..a90302a86 100644
--- a/src/testdir/dumps/Test_winhighlight_15.dump
+++ b/src/testdir/dumps/Test_winhighlight_15.dump
@@ -4,5 +4,5 @@
|S+8#0000000#ffffff0|i|x| @33||+1&&|S+0#ffffff16#e000002|i|x| @33
|~+0#4040ff13#ffffff0| @35||+1#0000000&|~+0#4040ff13#e000002| @35
|~+0&#ffffff0| @35||+1#0000000&|~+0#4040ff13#e000002| @35
-|[+1#0000000#ffffff0|N|o| |N|a|m|e|]| |[|+|]| @5|3|,|3| @11|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|5| @11|A|l@1
+|[+1#0000000#ffffff0|N|o| |N|a|m|e|]| |[|+|]| @5|3|,|3| @11|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|5| @11|A|l@1
|:+0&&|s|e|t|l|o|c|a|l| |w|h|l|=|N|o|r|m|a|l|:|E|r@1|o|r|M|s|g| @45
diff --git a/src/testdir/dumps/Test_winhighlight_2.dump b/src/testdir/dumps/Test_winhighlight_2.dump
index 72f754114..b84ef7053 100644
--- a/src/testdir/dumps/Test_winhighlight_2.dump
+++ b/src/testdir/dumps/Test_winhighlight_2.dump
@@ -4,5 +4,5 @@
|S|i|x| @33||+1&&|S+0&&|i|x| @33
|~+0#4040ff13&| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1
|:+0&&|w|i|n|c|m|d| |l| @65
diff --git a/src/testdir/dumps/Test_winhighlight_6.dump b/src/testdir/dumps/Test_winhighlight_6.dump
index e482465ca..f5753e118 100644
--- a/src/testdir/dumps/Test_winhighlight_6.dump
+++ b/src/testdir/dumps/Test_winhighlight_6.dump
@@ -4,5 +4,5 @@
|S|i|x| @33||+1&&|S+0&&|i|x| @33
|~+0#4040ff13&| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1
|:+0&&|s|e|t|l|o|c|a|l| |w|h|l|=|V|e|r|t|S|p|l|i|t|:|E|r@1|o|r|M|s|g| @42
diff --git a/src/testdir/dumps/Test_winhighlight_hlsearch_2.dump b/src/testdir/dumps/Test_winhighlight_hlsearch_2.dump
index 37a9087bb..30d643854 100644
--- a/src/testdir/dumps/Test_winhighlight_hlsearch_2.dump
+++ b/src/testdir/dumps/Test_winhighlight_hlsearch_2.dump
@@ -16,5 +16,5 @@
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|~| @35||+1#0000000&|~+0#4040ff13&| @35
-|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|1| @11|A|l@1
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|1|,|1| @11|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|1| @11|A|l@1
|/+0&&|F> @72
diff --git a/src/testdir/dumps/Test_winscrolled_once_only_1.dump b/src/testdir/dumps/Test_winscrolled_once_only_1.dump
index 7407f4686..56d640107 100644
--- a/src/testdir/dumps/Test_winscrolled_once_only_1.dump
+++ b/src/testdir/dumps/Test_winscrolled_once_only_1.dump
@@ -5,6 +5,6 @@
|a+0#0000000&@2| @26||+1&&|~+0#4040ff13&| @27
|b+0#0000000&@2| @26||+1&&|~+0#4040ff13&| @27
|~| @28||+1#0000000&|~+0#4040ff13&| @27
-|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @1|1|,|1| @8|A|l@1| +3&&|[|N|o| |N|a|m|e|]| |[|+|]| @1|2|,|1| @7|B|o|t
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @1|1|,|1| @8|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @1|2|,|1| @7|B|o|t
|1+0&&| |1|0@2| |[|'|r|o|w|'|,| |[@1|'|c|o|l|'|,| |[@1|'|l|e|a|f|'|,| |1|0@1|2|]|,| |[|'|l|e|a|f|'|,| |1|0@1|1|]@2|,| |[
|'|l|e|a|f|'|,| |1|0@2|]@2| @44
diff --git a/src/testdir/test_highlight.vim b/src/testdir/test_highlight.vim
index 1a017083b..7ce2e9a2e 100644
--- a/src/testdir/test_highlight.vim
+++ b/src/testdir/test_highlight.vim
@@ -1714,81 +1714,6 @@ func Test_VertSplitNC()
call StopVimInTerminal(buf)
endfunc
-func Test_VertSplitNC_multiline_stl()
- CheckScreendump
-
- let lines =<< trim END
- hi StatusLine ctermfg=White ctermbg=DarkBlue cterm=NONE
- hi StatusLineNC ctermfg=Black ctermbg=Gray cterm=NONE
- hi VertSplit ctermfg=Green ctermbg=NONE cterm=NONE
- hi VertSplitNC ctermfg=DarkGray ctermbg=NONE cterm=NONE
- set statuslineopt=maxheight:4,fixedheight
- set statusline=%f%=%l,%c\ %P
- call setline(1, repeat(['multi stl test'], 20))
- vsplit
- wincmd l
- sp
- sp
- wincmd k
- wincmd =
- END
- call writefile(lines, 'Xtest_vertsplitNC_stl', 'D')
-
- let buf = RunVimInTerminal('-S Xtest_vertsplitNC_stl', {'rows': 20})
- call TermWait(buf)
-
- " Right-top window is current: the separator cell on its status line
- " row should be a space with StatusLine highlight. Other status
- " line rows should use VertSplitNC.
- call VerifyScreenDump(buf, 'Test_VertSplitNC_stl_1', {})
-
- " Move to right-middle window
- call term_sendkeys(buf, "\<C-W>j")
- call TermWait(buf)
- call VerifyScreenDump(buf, 'Test_VertSplitNC_stl_2', {})
-
- " Move to right-bottom window
- call term_sendkeys(buf, "\<C-W>j")
- call TermWait(buf)
- call VerifyScreenDump(buf, 'Test_VertSplitNC_stl_3', {})
-
- call StopVimInTerminal(buf)
-endfunc
-
-func Test_VertSplitNC_fillchars()
- CheckScreendump
-
- let lines =<< trim END
- hi StatusLine ctermfg=White ctermbg=DarkBlue cterm=NONE
- hi StatusLineNC ctermfg=Black ctermbg=Gray cterm=NONE
- hi VertSplit ctermfg=Green ctermbg=NONE cterm=NONE
- hi VertSplitNC ctermfg=DarkGray ctermbg=NONE cterm=NONE
- set fillchars=vert:\|,stl:=,stlnc:-
- call setline(1, repeat(['fillchars test'], 20))
- vsplit
- vsplit
- END
- call writefile(lines, 'Xtest_vertsplitNC_fc', 'D')
-
- let buf = RunVimInTerminal('-S Xtest_vertsplitNC_fc', {'rows': 12})
- call TermWait(buf)
-
- " Left window is current. Non-status-line rows show '|' with
- " VertSplit (left sep) and VertSplitNC (right sep). On the status
- " line row, the separator cell is a space (not '=' from stl, and
- " not '|' from vert) with StatusLine highlight.
- call VerifyScreenDump(buf, 'Test_VertSplitNC_fc_1', {})
-
- " Move to middle window: both separators on non-status rows use
- " VertSplit. On the status line row both separator cells are
- " spaces with StatusLine highlight.
- call term_sendkeys(buf, "\<C-W>l")
- call TermWait(buf)
- call VerifyScreenDump(buf, 'Test_VertSplitNC_fc_2', {})
-
- call StopVimInTerminal(buf)
-endfunc
-
" Test that 'winhighlight' of window left of separator does not apply when
" drawing the window to the right of the separator.
func Test_VertSplitNC_winhighlight()
diff --git a/src/testdir/test_statusline.vim b/src/testdir/test_statusline.vim
index 6128e08b6..0b1359cd5 100644
--- a/src/testdir/test_statusline.vim
+++ b/src/testdir/test_statusline.vim
@@ -447,7 +447,7 @@ func Test_statusline()
set fillchars=stl:^,stlnc:=,vert:\|,fold:-,diff:-
vsplit
set statusline=x%=y
- call assert_match('^x^\+y x=\+y$', s:get_statusline())
+ call assert_match('^x^\+y^x=\+y$', s:get_statusline())
set fillchars&
close
@@ -548,9 +548,9 @@ func Test_statusline_mbyte_fillchar()
set statusline=a%=b
call assert_match('^a\+笏―+b$', s:get_statusline())
vnew
- call assert_match('^a\+笏―+b a\+笊申+b$', s:get_statusline())
+ call assert_match('^a\+笏―+b笏∥\+笊申+b$', s:get_statusline())
wincmd w
- call assert_match('^a\+笊申+b a\+笏―+b$', s:get_statusline())
+ call assert_match('^a\+笊申+b笊紳\+笏―+b$', s:get_statusline())
set statusline& fillchars&
%bw!
endfunc
diff --git a/src/testdir/test_window_cmd.vim b/src/testdir/test_window_cmd.vim
index b1305c77e..b5ec9e5e7 100644
--- a/src/testdir/test_window_cmd.vim
+++ b/src/testdir/test_window_cmd.vim
@@ -284,7 +284,7 @@ func Test_window_split_no_room()
call setwinvar(winnr('k'), '&statusline', '@#')
let last_stl_row = win_screenpos(0)[0] - 1
redraw
- call assert_equal('@# ', GetScreenStr(last_stl_row))
+ call assert_equal('@#|', GetScreenStr(last_stl_row))
call assert_equal('~ |', GetScreenStr(&lines - &cmdheight))
call assert_fails('wincmd H', 'E36:')
@@ -292,7 +292,7 @@ func Test_window_split_no_room()
call assert_equal(info, s:win_layout_info())
call setwinvar(winnr('k'), '&statusline', '=-')
redraw
- call assert_equal('=- ', GetScreenStr(last_stl_row))
+ call assert_equal('=-|', GetScreenStr(last_stl_row))
call assert_equal('~ |', GetScreenStr(&lines - &cmdheight))
%bw!
diff --git a/src/version.c b/src/version.c
index 9d5136df6..713701f96 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 453,
/**/
452,
/**/
diff --git a/src/vim.h b/src/vim.h
index 8949e867d..ee67e4078 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -1534,7 +1534,7 @@ typedef enum
, HLF_S // status lines
, HLF_SNC // status lines of not-current windows
, HLF_C // column to separate vertically split windows
- , HLF_CNC // column separator for not-current windows
+ , HLF_CNC // column to separate vertically split non-current windows
, HLF_T // Titles for output from ":set all", ":autocmd" etc.
, HLF_V // Visual mode
, HLF_VNC // Visual mode, autoselecting and not clipboard owner
diff --git a/src/window.c b/src/window.c
index eb4e494d1..46302b848 100644
--- a/src/window.c
+++ b/src/window.c
@@ -5829,16 +5829,13 @@ win_enter_ext(win_T *wp, int flags)
#endif
redraw_tabline = TRUE;
redraw_vseps = TRUE;
- // Need to redraw all status lines so that the vsep character at
- // status line rows is updated for the new current window.
- {
- win_T *ww;
- FOR_ALL_WINDOWS(ww)
- ww->w_redr_status = true;
- }
#if defined(FEAT_TABPANEL)
redraw_tabpanel = TRUE;
#endif
+ // Need to schedule a redraw so that the vertical separator highlight is
+ // updated for the new current window. The status line redraw of curwin
+ // is already requested via "curwin->w_redr_status".
+ redraw_later(UPD_VALID);
if (restart_edit)
redraw_later(UPD_VALID); // causes status line redraw
@@ -7892,8 +7889,6 @@ frame_change_statusline_height(void)
tabpage_T *tp;
int global_stlh;
- redraw_vseps = TRUE;
-
// First pass: find space-constrained global height.
global_stlh = stlo_mh;
FOR_ALL_TABPAGES(tp)