changeset 35361:e26033cfae22 v9.1.0473

patch 9.1.0473: term_start() does not clear vertical modifier Commit: https://github.com/vim/vim/commit/d603e956095b8bc79526476138fe80b1e0be9b8d Author: Yegappan Lakshmanan <yegappan@yahoo.com> Date: Mon Jun 10 18:16:34 2024 +0200 patch 9.1.0473: term_start() does not clear vertical modifier Problem: term_start() does not clear vertical modifier Solution: Clear the flag after splitting the window (Yegappan Lakshmanan) closes: #14953 Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Mon, 10 Jun 2024 18:30:03 +0200
parents 7264594fc147
children 7668d8a76462
files src/terminal.c src/testdir/test_terminal3.vim src/version.c
diffstat 3 files changed, 24 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -538,9 +538,15 @@ term_start(
 	    split_ea.addr_count = 1;
 	}
 
+	int cmod_split_modified = FALSE;
 	if (vertical)
+	{
 	    cmdmod.cmod_split |= WSP_VERT;
+	    cmod_split_modified = TRUE;
+	}
 	ex_splitview(&split_ea);
+	if (vertical && cmod_split_modified)
+	    cmdmod.cmod_split &= ~WSP_VERT;
 	if (curwin == old_curwin)
 	{
 	    // split failed
--- a/src/testdir/test_terminal3.vim
+++ b/src/testdir/test_terminal3.vim
@@ -10,6 +10,8 @@ source screendump.vim
 source mouse.vim
 source term_util.vim
 
+import './vim9.vim' as v9
+
 let $PROMPT_COMMAND=''
 
 func Test_terminal_altscreen()
@@ -959,4 +961,18 @@ func Test_terminal_vt420()
   call StopVimInTerminal(buf)
 endfunc
 
+" Test for using 'vertical' with term_start(). If a following term_start(),
+" doesn't have the 'vertical' attribute, then it should be split horizontally.
+func Test_terminal_vertical()
+  let lines =<< trim END
+    call term_start("NONE", {'vertical': 1})
+    call term_start("NONE")
+    VAR layout = winlayout()
+    call assert_equal('row', layout[0], string(layout))
+    call assert_equal('col', layout[1][0][0], string(layout))
+    :%bw!
+  END
+  call v9.CheckLegacyAndVim9Success(lines)
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    473,
+/**/
     472,
 /**/
     471,