patch 9.2.0349: cannot style non-current window separator

Commit: 
https://github.com/vim/vim/commit/c72196529bbe73c4dbb966ed9e83c2f620f864ce
Author: Hirohito Higashi <[email protected]>
Date:   Tue Apr 14 18:39:52 2026 +0000

    patch 9.2.0349: cannot style non-current window separator
    
    Problem:  cannot style non-current window separator
    Solution: Add the VertSplitNC highlighting group
              (Hirohito Higashi).
    
    Add VertSplitNC highlight group for vertical separators of non-current
    windows, similar to StatusLine/StatusLineNC distinction.  The separator
    adjacent to the current window uses VertSplit, others use VertSplitNC.
    Default: linked to VertSplit.
    
    At the current window's status line rows, the separator cell is drawn as
    a space with the StatusLine highlight so it blends into the status line
    without a stray fillchar glyph.
    
    Also:
    - :redrawstatus[!] now also redraws vertical separators.
    - statusline height changes trigger vsep redraw.
    
    closes: #19951
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
    Signed-off-by: Hirohito Higashi <[email protected]>
    Signed-off-by: Christian Brabandt <[email protected]>

diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 5f8b4292b..4d40b8aa5 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -4757,7 +4757,8 @@ A jump table for the options with a short description can 
be found at |Q_op|.
                                     l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,
                                     a:LineNrAbove,b:LineNrBelow,
                                     N:CursorLineNr,r:Question,s:StatusLine,
-                                    S:StatusLineNC,c:VertSplit,t:Title,
+                                    S:StatusLineNC,c:VertSplit,
+                                    |:VertSplitNC,t:Title,
                                     v:Visual,V:VisualNOS,w:WarningMsg,
                                     W:WildMenu,f:Folded,F:FoldColumn,
                                     A:DiffAdd,C:DiffChange,D:DiffDelete,
@@ -4805,6 +4806,8 @@ A jump table for the options with a short description can 
be found at |Q_op|.
        |hl-StatusLineNC|  S  status lines of not-current windows
        |hl-Title|       t  Titles for output from ":set all", ":autocmd" etc.
        |hl-VertSplit|   c  column used to separate vertically split windows
+       |hl-VertSplitNC| |  column separating non-current vertically split
+                           windows
        |hl-Visual|      v  Visual mode
        |hl-VisualNOS|   V  Visual mode when Vim is "Not Owning the
                            Selection" Only X11 Gui's |gui-x11|,
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index c771a400a..2102debf2 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 Mar 22
+*syntax.txt*   For Vim version 9.2.  Last change: 2026 Apr 14
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -5978,7 +5978,14 @@ 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.
+VertSplit      Column separating vertically split windows that are adjacent
+               to the current window.  On the current window's status line
+               rows, the separator cell is drawn as a space with the
+               |hl-StatusLine| highlight so it blends into the status line
+               without a stray fillchar glyph.
+                                                       *hl-VertSplitNC*
+VertSplitNC    Column separating vertically split windows of non-current
+               windows.  By default, highlighted like |hl-VertSplit|.
                                                        *hl-Folded*
 Folded         Line used for closed folds.
                                                        *hl-FoldColumn*
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 66f373161..c4bc58fc9 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -8487,6 +8487,7 @@ hl-User1  syntax.txt      /*hl-User1*
 hl-User1..9    syntax.txt      /*hl-User1..9*
 hl-User9       syntax.txt      /*hl-User9*
 hl-VertSplit   syntax.txt      /*hl-VertSplit*
+hl-VertSplitNC syntax.txt      /*hl-VertSplitNC*
 hl-Visual      syntax.txt      /*hl-Visual*
 hl-VisualNOS   syntax.txt      /*hl-VisualNOS*
 hl-WarningMsg  syntax.txt      /*hl-WarningMsg*
diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt
index 2b3decac7..54449a542 100644
--- a/runtime/doc/version9.txt
+++ b/runtime/doc/version9.txt
@@ -1,4 +1,4 @@
-*version9.txt* For Vim version 9.2.  Last change: 2026 Apr 10
+*version9.txt* For Vim version 9.2.  Last change: 2026 Apr 14
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -52659,6 +52659,10 @@ Options: ~
 'termsync'             Enable support for terminal DEC 2026 sync mode.
 'winhighlight'         Window-local highlight group mappings.
 
+Highlighting: ~
+
+|hl-VertSplitNC|       Column separator of non-current window.
+
 ==============================================================================
 PATCHES                                                *patches-9.3* 
*bug-fixes-9.3*
                                                *patches-after-9.2*
diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim
index 6b0658e3d..23bdda651 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 <[email protected]>
-" Last Change:    2026 Apr 07
+" Last Change:    2026 Apr 14
 " Former Maintainer: Charles E. Campbell
 
 " DO NOT CHANGE DIRECTLY.
@@ -146,8 +146,8 @@ syn keyword vimGroup contained Added Bold BoldItalic 
Boolean Changed Character C
 
 " Default highlighting groups {{{2
 " GEN_SYN_VIM: vimHLGroup, START_STR='syn keyword vimHLGroup contained', 
END_STR=''
-syn keyword vimHLGroup contained ErrorMsg IncSearch ModeMsg NonText StatusLine 
StatusLineNC EndOfBuffer VertSplit VisualNOS DiffText DiffTextAdd PmenuSbar 
TabLineSel TabLineFill TabPanel TabPanelSel TabPanelFill Cursor lCursor 
TitleBar TitleBarNC QuickFixLine CursorLineSign CursorLineFold CurSearch 
PmenuKind PmenuKindSel PmenuMatch PmenuMatchSel PmenuExtra PmenuExtraSel 
PmenuBorder PopupSelected MessageWindow PopupNotification PreInsert Normal 
Directory LineNr CursorLineNr MoreMsg Question Search SpellBad SpellCap 
SpellRare SpellLocal PmenuThumb PmenuShadow Pmenu PmenuSel SpecialKey Title 
WarningMsg WildMenu Folded FoldColumn SignColumn Visual DiffAdd DiffChange 
DiffDelete TabLine CursorColumn CursorLine ColorColumn MatchParen 
StatusLineTerm StatusLineTermNC ToolbarLine
-syn keyword vimHLGroup contained ToolbarButton TitleBar TitleBarNC Menu 
Tooltip Scrollbar CursorIM ComplMatchIns LineNrAbove LineNrBelow MsgArea 
Terminal User1 User2 User3 User4 User5 User6 User7 User8 User9
+syn keyword vimHLGroup contained ErrorMsg IncSearch ModeMsg NonText StatusLine 
StatusLineNC EndOfBuffer VertSplit VertSplitNC VisualNOS DiffText DiffTextAdd 
PmenuSbar TabLineSel TabLineFill TabPanel TabPanelSel TabPanelFill Cursor 
lCursor TitleBar TitleBarNC QuickFixLine CursorLineSign CursorLineFold 
CurSearch PmenuKind PmenuKindSel PmenuMatch PmenuMatchSel PmenuExtra 
PmenuExtraSel PmenuBorder PopupSelected MessageWindow PopupNotification 
PreInsert Normal Directory LineNr CursorLineNr MoreMsg Question Search SpellBad 
SpellCap SpellRare SpellLocal PmenuThumb PmenuShadow Pmenu PmenuSel SpecialKey 
Title WarningMsg WildMenu Folded FoldColumn SignColumn Visual DiffAdd 
DiffChange DiffDelete TabLine CursorColumn CursorLine ColorColumn MatchParen 
StatusLineTerm StatusLineTermNC
+syn keyword vimHLGroup contained ToolbarLine ToolbarButton TitleBar TitleBarNC 
Menu Tooltip Scrollbar CursorIM ComplMatchIns LineNrAbove LineNrBelow MsgArea 
Terminal User1 User2 User3 User4 User5 User6 User7 User8 User9
 syn match vimHLGroup contained "\<Conceal\>"
 syn case match
 
diff --git a/src/drawscreen.c b/src/drawscreen.c
index d619859bd..0a745cd88 100644
--- a/src/drawscreen.c
+++ b/src/drawscreen.c
@@ -371,6 +371,16 @@ update_screen(int type_arg)
     pum_will_redraw = save_pum_will_redraw;
     pum_may_redraw();
 
+    // Redraw vertical separators to update VertSplit/VertSplitNC highlights
+    // when the current window has changed.
+    if (redraw_vseps)
+    {
+       redraw_vseps = FALSE;
+       FOR_ALL_WINDOWS(wp)
+           if (wp->w_vsep_width > 0)
+               draw_vsep_win(wp, 0);
+    }
+
     // Reset b_mod_set flags.  Going through all windows is probably faster
     // than going through all buffers (there could be many buffers).
     FOR_ALL_WINDOWS(wp)
@@ -600,12 +610,12 @@ win_redr_status(win_T *wp, int ignore_pum UNUSED)
      */
     if (wp->w_vsep_width != 0 && wp->w_status_height != 0 && redrawing())
     {
-       if (stl_connected(wp))
-           fillchar = fillchar_status(&attr, wp);
-       else
-           fillchar = fillchar_vsep(&attr, wp);
        for (i = 0; i < wp->w_status_height; i++)
-           screen_putchar(fillchar, row + i, W_ENDCOL(wp), attr);
+       {
+           int r = row + i;
+           fillchar = sep_cell_at_row(&attr, wp, r);
+           screen_putchar(fillchar, r, W_ENDCOL(wp), attr);
+       }
     }
     busy = FALSE;
 }
@@ -3414,6 +3424,13 @@ 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/ex_docmd.c b/src/ex_docmd.c
index 73ed9f227..ade93579d 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -9016,6 +9016,7 @@ ex_redrawstatus(exarg_T *eap UNUSED)
        status_redraw_all();
     else
        status_redraw_curbuf();
+    redraw_vseps = TRUE;
     if (msg_scrolled && (State & MODE_CMDLINE))
        return;  // redraw later
 
diff --git a/src/globals.h b/src/globals.h
index 7d873eea4..20450aa68 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1090,6 +1090,7 @@ EXTERN tabpage_T    *first_tabpage;
 EXTERN tabpage_T    *curtab;
 EXTERN tabpage_T    *lastused_tabpage;
 EXTERN int         redraw_tabline INIT(= FALSE);  // need to redraw tabline
+EXTERN int         redraw_vseps INIT(= FALSE);    // need to redraw vseps
 
 #if defined(FEAT_TABPANEL)
 EXTERN int         redraw_tabpanel INIT(= FALSE);  // need to redraw tabpanel
diff --git a/src/highlight.c b/src/highlight.c
index 73b39e98b..8baa44afe 100644
--- a/src/highlight.c
+++ b/src/highlight.c
@@ -272,6 +272,7 @@ static char *(highlight_init_both[]) = {
     "default link EndOfBuffer NonText",
     CENT("VertSplit term=reverse cterm=reverse",
         "VertSplit term=reverse cterm=reverse gui=reverse"),
+    "default link VertSplitNC VertSplit",
 #ifdef FEAT_CLIPBOARD
     CENT("VisualNOS term=underline,bold cterm=underline,bold",
         "VisualNOS term=underline,bold cterm=underline,bold 
gui=underline,bold"),
diff --git a/src/optiondefs.h b/src/optiondefs.h
index a5e1fe99d..9fd2fe5cd 100644
--- a/src/optiondefs.h
+++ b/src/optiondefs.h
@@ -312,7 +312,7 @@ struct vimoption
 # define ISP_LATIN1 (char_u *)"@,161-255"
 #endif
 
-#define HIGHLIGHT_INIT 
"8:SpecialKey,~:EndOfBuffer,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,y:CurSearch,m:MoreMsg,M:ModeMsg,n:LineNr,a:LineNrAbove,b:LineNrBelow,N:CursorLineNr,G:CursorLineSign,O:CursorLineFold,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,E:DiffTextAdd,>:SignColumn,-:Conceal,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,k:PmenuMatch,<:PmenuMatchSel,[:PmenuKind,]:PmenuKindSel,{:PmenuExtra,}:PmenuExtraSel,x:PmenuSbar,X:PmenuThumb,j:PmenuBorder,H:PmenuShadow,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine,o:ColorColumn,q:QuickFixLine,z:StatusLineTerm,Z:StatusLineTermNC,g:MsgArea,h:ComplMatchIns,%:TabPanel,^:TabPanelSel,&:TabPanelFill,I:PreInsert"
+#define HIGHLIGHT_INIT 
"8:SpecialKey,~:EndOfBuffer,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,y:CurSearch,m:MoreMsg,M:ModeMsg,n:LineNr,a:LineNrAbove,b:LineNrBelow,N:CursorLineNr,G:CursorLineSign,O:CursorLineFold,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,|:VertSplitNC,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,E:DiffTextAdd,>:SignColumn,-:Conceal,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,k:PmenuMatch,<:PmenuMatchSel,[:PmenuKind,]:PmenuKindSel,{:PmenuExtra,}:PmenuExtraSel,x:PmenuSbar,X:PmenuThumb,j:PmenuBorder,H:PmenuShadow,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine,o:ColorColumn,q:QuickFixLine,z:StatusLineTerm,Z:StatusLineTermNC,g:MsgArea,h:ComplMatchIns,%:TabPanel,^:TabPanelSel,&:TabPanelFill,I:PreInsert"
 
 // Default python version for pyx* commands
 #if defined(FEAT_PYTHON) && defined(FEAT_PYTHON3)
diff --git a/src/proto/screen.pro b/src/proto/screen.pro
index 2dce88691..afaa86287 100644
--- a/src/proto/screen.pro
+++ b/src/proto/screen.pro
@@ -48,7 +48,8 @@ void clearmode(void);
 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 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 ed28ac91a..8005b3cc3 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -1126,9 +1126,7 @@ skip_opacity:
        {
            if (!skip_for_popup(row, col + coloff))
            {
-               int c;
-
-               c = fillchar_vsep(&hl, wp);
+               int c = sep_cell_at_row(&hl, wp, row);
                if (ScreenLines[off_to] != (schar_T)c
                        || (enc_utf8 && (int)ScreenLinesUC[off_to]
                                                        != (c >= 0x80 ? c : 0))
@@ -1179,21 +1177,23 @@ rl_mirror(char_u *str)
 #endif
 
 /*
- * Draw the verticap separator right of window "wp" starting with line "row".
+ * Draw the vertical separator right of window "wp" starting with line "row".
  */
     void
 draw_vsep_win(win_T *wp, int row)
 {
     int                hl;
-    int                c;
 
     if (!wp->w_vsep_width)
        return;
 
-    // draw the vertical separator right of this window
-    c = fillchar_vsep(&hl, wp);
-    screen_fill(W_WINROW(wp) + row, W_WINROW(wp) + wp->w_height,
-           W_ENDCOL(wp), W_ENDCOL(wp) + 1, c, ' ', hl);
+    // 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 c = sep_cell_at_row(&hl, wp, r);
+       screen_fill(r, r + 1, W_ENDCOL(wp), W_ENDCOL(wp) + 1, c, ' ', hl);
+    }
 }
 
 /*
@@ -5117,16 +5117,41 @@ fillchar_status(int *attr, win_T *wp)
     return fill;
 }
 
+/*
+ * Return true if the vertical separator of "wp" at screen row "row" is
+ * adjacent to the current window.  The separator is owned by "wp" and drawn
+ * at its right edge.
+ */
+    static bool
+vsep_row_is_curwin(win_T *wp, int row)
+{
+    if (wp == curwin)
+       return true;
+
+    // Check if curwin is immediately to the right of wp's separator and
+    // "row" is within curwin's row range.
+    if (curwin->w_wincol == W_ENDCOL(wp) + wp->w_vsep_width
+           && row >= W_WINROW(curwin)
+           && row < W_WINROW(curwin) + curwin->w_height)
+       return true;
+
+    return false;
+}
+
 /*
  * 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.
  */
     int
-fillchar_vsep(int *attr, win_T *wp)
+fillchar_vsep(int *attr, win_T *wp, int row)
 {
     bool override_success =
        push_highlight_overrides(wp->w_hl, wp->w_hl_len);
-    *attr = HL_ATTR(HLF_C);
+    if (vsep_row_is_curwin(wp, row))
+       *attr = HL_ATTR(HLF_C);
+    else
+       *attr = HL_ATTR(HLF_CNC);
     if (override_success)
        pop_highlight_overrides();
 
@@ -5136,6 +5161,81 @@ fillchar_vsep(int *attr, win_T *wp)
        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 >= W_WINROW(rn)
+               && 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_1.dump 
b/src/testdir/dumps/Test_VertSplitNC_1.dump
new file mode 100644
index 000000000..804bf60ea
--- /dev/null
+++ b/src/testdir/dumps/Test_VertSplitNC_1.dump
@@ -0,0 +1,12 @@
+>V+0&#ffffff0|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#6c6c6c255&|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#6c6c6c255&|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#6c6c6c255&|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#6c6c6c255&|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#6c6c6c255&|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#6c6c6c255&|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#6c6c6c255&|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#6c6c6c255&|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#6c6c6c255&|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#6c6c6c255&|V+0#0000000&|e|r|t|S|p|l|i|t|N|C| |t|e|s|t| @7
+|<+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_2.dump 
b/src/testdir/dumps/Test_VertSplitNC_2.dump
new file mode 100644
index 000000000..8afa526ac
--- /dev/null
+++ b/src/testdir/dumps/Test_VertSplitNC_2.dump
@@ -0,0 +1,12 @@
+|V+0&#ffffff0|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
+|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
+|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
+|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#0000000#ffffff0@74
diff --git a/src/testdir/dumps/Test_VertSplitNC_3.dump 
b/src/testdir/dumps/Test_VertSplitNC_3.dump
new file mode 100644
index 000000000..614de055e
--- /dev/null
+++ b/src/testdir/dumps/Test_VertSplitNC_3.dump
@@ -0,0 +1,12 @@
+|V+0&#ffffff0|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
+|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
+|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
+|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#0000000#ffffff0@74
diff --git a/src/testdir/dumps/Test_VertSplitNC_fc_1.dump 
b/src/testdir/dumps/Test_VertSplitNC_fc_1.dump
new file mode 100644
index 000000000..6aa0dbf44
--- /dev/null
+++ b/src/testdir/dumps/Test_VertSplitNC_fc_1.dump
@@ -0,0 +1,12 @@
+>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
new file mode 100644
index 000000000..58652b933
--- /dev/null
+++ b/src/testdir/dumps/Test_VertSplitNC_fc_2.dump
@@ -0,0 +1,12 @@
+|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
new file mode 100644
index 000000000..5e4d8bb00
--- /dev/null
+++ b/src/testdir/dumps/Test_VertSplitNC_stl_1.dump
@@ -0,0 +1,20 @@
+|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
new file mode 100644
index 000000000..c7ceac388
--- /dev/null
+++ b/src/testdir/dumps/Test_VertSplitNC_stl_2.dump
@@ -0,0 +1,20 @@
+|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
new file mode 100644
index 000000000..2d4189ed6
--- /dev/null
+++ b/src/testdir/dumps/Test_VertSplitNC_stl_3.dump
@@ -0,0 +1,20 @@
+|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_diff_anchors_07.dump 
b/src/testdir/dumps/Test_diff_anchors_07.dump
index 310fa6544..eda58e9fd 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| |X+3&&|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| +3&&|X|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 a0ffa9f30..5616d5f37 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| |X+3&&|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| +3&&|X|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 9e5c9dc94..3d66db8d6 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| |X+3&&|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| +3&&|X|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 76f861768..fdab54144 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| |X+3&&|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| +3&&|X|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 1c069d8de..705446a3d 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| |X+3&&|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| +3&&|X|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 87bbc572e..5daf6573d 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| |X+3&&|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| +3&&|X|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 1f5917cf4..6cae25e1d 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| |X+3&&|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| +3&&|X|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 1c069d8de..705446a3d 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| |X+3&&|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| +3&&|X|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 aadabe077..a2ade506e 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| |X+3&&|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| +3&&|X|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 99cb0ded0..af9992427 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| |X+3&&|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| +3&&|X|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 3c35c7741..c6a418a4b 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| |X+3&&|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| +3&&|X|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 432cadb94..cf6bce8d0 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| |X+3&&|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| +3&&|X|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 b95c2661a..4bff316f4 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| |X+3&&|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| +3&&|X|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 7daaf7a9a..949693315 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| |X+3&&|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| +3&&|X|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 d4649d205..eeb984d68 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| 
|X+3&&|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| 
+3&&|X|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 69737fa58..b8426a39a 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| 
|X+3&&|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| 
+3&&|X|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 49ab24387..2b94da955 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| 
|X+3&&|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| 
+3&&|X|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 cbea3e560..8fdd9f608 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| 
|X+3&&|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| 
+3&&|X|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 cb62a9ef7..ce905130e 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| |X+3&&|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| +3&&|X|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 16c2cd874..c6ea6ddc8 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| |X+3&&|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| +3&&|X|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 de58a6ac3..b76d549b2 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| |X+3&&|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| +3&&|X|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 901ea4699..51c35f5af 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| |X+3&&|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| +3&&|X|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 91f59cda2..dc36ed8ff 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| |X+3&&|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| +3&&|X|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 212c24797..ad86c4684 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| |X+3&&|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| +3&&|X|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 dc7c0f910..d51d66674 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 32ffc4003..d33a2ee0a 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 8c8b93844..0d29b8408 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 ee53c35bb..971346101 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| |X+3&&|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| +3&&|X|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 4cac386a6..d6cd1b9c9 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| |X+3&&|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| +3&&|X|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 6d0c8600f..5a4088975 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 1d4c9145f..5b5122621 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 2d28bd373..a0f3db79c 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 6043d7ad7..94414b1e7 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 8151088e0..3855fa17c 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 62126f6b3..c1ae50d6d 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 f32be7385..bdf8be065 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 9489f9ab0..aa3ce8e5d 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 31d8b2a18..0b9bcb9bd 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 9aef7d1fa..68014acb2 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 5bc9e1316..595de46ce 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 b0b1642bf..9568e09c5 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|b|[|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| |[|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|4|[+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| |[+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 b983face0..f62488861 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|2|[+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| |[+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|d|[|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| |[|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 615afb8e1..65b16f3cc 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 dfe2e98ae..2b6afa0ec 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 db9fd6ff1..93f94a0ec 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 81821604d..830423ad3 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 f2986f379..d706910fc 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 6d24637e3..82ea8b8f8 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 d8f23e84b..a010d2761 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| |X+3&&|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| +3&&|X|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 72fff585c..a7de31069 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 b7be52e89..d7e05df9a 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 13aca6d2f..d54b3e50f 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 e62c5aff2..694e6eadc 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 89b759fb4..7ecb79738 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 9f4b5d30e..9176c5fde 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 ad81656a5..572bf248f 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 dbcfda116..20f4d4658 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 0b97cb832..e048949de 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 e8a5c2e35..c91b20100 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 1d1a5531c..e4b2aec90 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 caaa881fe..a056cd867 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 243ec0dc1..453665d99 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 c634f1dd3..28f2e1d99 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 691fe289f..4c2d28d0e 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 c4178404d..e47fb5d34 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 d13141eb2..0c7e70c27 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 b789df3fb..37ce70a75 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 39013c09f..cf5f9dbc9 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 b041b672f..0ee2efe9d 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 3633ffe54..d2e69dc82 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|]| 
@22||+1#0000000#ffffff0|6+0&&| @35
+|!+2#ffffff16#00e0003|c|a|t| |[|r|u|n@1|i|n|g|]| @23|6+0#0000000#ffffff0| @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|]| @23|[+1#0000000#ffffff0|N|o| 
|N|a|m|e|]| |[|+|]| @23
+|!+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&&|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 ce69e3b4d..8e5796f62 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||+1#0000000#ffffff0|!+2#ffffff16#00e0003|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| +2&&|!|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|]| @23|[+1#0000000#ffffff0|N|o| 
|N|a|m|e|]| |[|+|]| @23
+|!+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&&|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 1ea869d65..176bf6ea9 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 a90302a86..7d69f21b5 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 b84ef7053..72f754114 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 f5753e118..e482465ca 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 30d643854..37a9087bb 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 56d640107..7407f4686 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 6b45e8ea8..584693f80 100644
--- a/src/testdir/test_highlight.vim
+++ b/src/testdir/test_highlight.vim
@@ -1680,4 +1680,112 @@ func Test_winhighlight_occasion()
   call StopVimInTerminal(buf)
 endfunc
 
+func Test_VertSplitNC()
+  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
+    call setline(1, repeat(['VertSplitNC test'], 20))
+    vsplit
+    vsplit
+  END
+  call writefile(lines, 'Xtest_vertsplitNC', 'D')
+
+  let buf = RunVimInTerminal('-S Xtest_vertsplitNC', {'rows': 12})
+  call TermWait(buf)
+
+  " Left window is current: left separator is VertSplit, right is VertSplitNC
+  call VerifyScreenDump(buf, 'Test_VertSplitNC_1', {})
+
+  " Move to middle window: both separators should be VertSplit
+  call term_sendkeys(buf, "\<C-W>l")
+  call TermWait(buf)
+  call VerifyScreenDump(buf, 'Test_VertSplitNC_2', {})
+
+  " Move to right window: right separator is VertSplitNC, left is VertSplit
+  call term_sendkeys(buf, "\<C-W>l")
+  call TermWait(buf)
+  call VerifyScreenDump(buf, 'Test_VertSplitNC_3', {})
+
+  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
+
 " vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim
index 7bd07ca0b..828a5ca71 100644
--- a/src/testdir/test_options.vim
+++ b/src/testdir/test_options.vim
@@ -667,7 +667,7 @@ func Test_set_completion_string_values()
 
   " highlight: special parsing, including auto-completing highlight groups
   " after ':'
-  call assert_equal([&hl, '8'], getcompletion('set hl=', 'cmdline')[0:1])
+  call assert_equal([escape(&hl, '|'), '8'], getcompletion('set hl=', 
'cmdline')[0:1])
   call assert_equal('8', getcompletion('set hl+=', 'cmdline')[0])
   call assert_equal(['8:', '8b', '8i'], getcompletion('set hl+=8', 
'cmdline')[0:2])
   call assert_equal('8bi', getcompletion('set hl+=8b', 'cmdline')[0])
diff --git a/src/testdir/test_statusline.vim b/src/testdir/test_statusline.vim
index 6936ca807..79e857cf5 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笏∥\+笊申+b$', s:get_statusline())
+  call assert_match('^a\+笏―+b a\+笊申+b$', s:get_statusline())
   wincmd w
-  call assert_match('^a\+笊申+b笊紳\+笏―+b$', s:get_statusline())
+  call assert_match('^a\+笊申+b a\+笏―+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 aa631b290..98e9ba83d 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 dec32640e..657dc3f47 100644
--- a/src/version.c
+++ b/src/version.c
@@ -734,6 +734,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    349,
 /**/
     348,
 /**/
diff --git a/src/vim.h b/src/vim.h
index 51d0cc1f3..143642d04 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -1533,6 +1533,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_T        // Titles for output from ":set all", ":autocmd" etc.
     , HLF_V        // Visual mode
     , HLF_VNC      // Visual mode, autoselecting and not clipboard owner
@@ -1584,7 +1585,7 @@ typedef enum
 // The HL_FLAGS must be in the same order as the HLF_ enums!
 // When changing this also adjust the default for 'highlight'.
 #define HL_FLAGS {'8', '~', '@', 'd', 'e', 'h', 'i', 'l', 'y', 'm', 'M', \
-                 'n', 'a', 'b', 'N', 'G', 'O', 'r', 's', 'S', 'c', 't', 'v', 
'V', \
+                 'n', 'a', 'b', 'N', 'G', 'O', 'r', 's', 'S', 'c', '|', 't', 
'v', 'V', \
                  'w', 'W', 'f', 'F', 'A', 'C', 'D', 'T', 'E', '-', '>', \
                  'B', 'P', 'R', 'L', \
                  '+', '=', 'k', '<','[', ']', '{', '}', 'x', 'X', 'j', 'H', \
diff --git a/src/window.c b/src/window.c
index b42845ecf..1d0d47844 100644
--- a/src/window.c
+++ b/src/window.c
@@ -5825,6 +5825,14 @@ win_enter_ext(win_T *wp, int flags)
        redraw_mode = TRUE;
 #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
@@ -7879,6 +7887,8 @@ 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)

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/vim_dev/E1wCil1-002gEl-KD%40256bit.org.

Raspunde prin e-mail lui