changeset 10726:78927b31c73a v8.0.0253

patch 8.0.0253: error when loading session if winminheight is 2 commit https://github.com/vim/vim/commit/36ae89c550a4f0a380606c3fb4a054957ad698f0 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jan 28 17:11:14 2017 +0100 patch 8.0.0253: error when loading session if winminheight is 2 Problem: When creating a session when winminheight is 2 or larger and loading that session gives an error. Solution: Also set winminheight before setting winheight to 1. (Rafael Bodill, neovim #5717)
author Christian Brabandt <cb@256bit.org>
date Sat, 28 Jan 2017 17:15:04 +0100
parents d2aa3ad3d3ef
children 1d457d3a4751
files src/ex_docmd.c src/testdir/test_mksession.vim src/version.c
diffstat 3 files changed, 18 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -11197,8 +11197,10 @@ makeopens(
 	 * resized when moving between windows.
 	 * Do this before restoring the view, so that the topline and the
 	 * cursor can be set.  This is done again below.
+	 * winminheight and winminwidth need to be set to avoid an error if the
+	 * user has set winheight or winwidth.
 	 */
-	if (put_line(fd, "set winheight=1 winwidth=1") == FAIL)
+	if (put_line(fd, "set winminheight=1 winheight=1 winminwidth=1 winwidth=1") == FAIL)
 	    return FAIL;
 	if (nr > 1 && ses_winsizes(fd, restore_size, tab_firstwin) == FAIL)
 	    return FAIL;
@@ -11268,6 +11270,10 @@ makeopens(
     if (fprintf(fd, "set winheight=%ld winwidth=%ld shortmess=%s",
 			       p_wh, p_wiw, p_shm) < 0 || put_eol(fd) == FAIL)
 	return FAIL;
+    /* Re-apply 'winminheight' and 'winminwidth'. */
+    if (fprintf(fd, "set winminheight=%ld winminwidth=%ld",
+				      p_wmh, p_wmw) < 0 || put_eol(fd) == FAIL)
+	return FAIL;
 
     /*
      * Lastly, execute the x.vim file if it exists.
--- a/src/testdir/test_mksession.vim
+++ b/src/testdir/test_mksession.vim
@@ -101,4 +101,13 @@ func Test_mksession()
   let &wrap = wrap_save
 endfunc
 
+func Test_mksession_winheight()
+  new
+  set winheight=10 winminheight=2
+  mksession! test_mks.out
+  source test_mks.out
+
+  " call delete('test_mks.out')
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    253,
+/**/
     252,
 /**/
     251,