summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ex_docmd.c8
-rw-r--r--src/testdir/test_mksession.vim9
-rw-r--r--src/version.c2
3 files changed, 18 insertions, 1 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index bfb4c88d4..192f45d19 100644
--- 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.
diff --git a/src/testdir/test_mksession.vim b/src/testdir/test_mksession.vim
index c19f3c56a..77025c854 100644
--- 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
diff --git a/src/version.c b/src/version.c
index 8645713b8..19ba72e15 100644
--- 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,