diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-01-28 17:11:14 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-01-28 17:11:14 +0100 |
commit | 36ae89c550a4f0a380606c3fb4a054957ad698f0 (patch) | |
tree | 58e9a87402e478ec4e11af06861c1363df52fdac | |
parent | 4019cf90b8657d4ab1c39744db63550f44f405a2 (diff) | |
download | vim-git-8.0.0253.tar.gz |
patch 8.0.0253: error when loading session if winminheight is 2v8.0.0253
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)
-rw-r--r-- | src/ex_docmd.c | 8 | ||||
-rw-r--r-- | src/testdir/test_mksession.vim | 9 | ||||
-rw-r--r-- | src/version.c | 2 |
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, |