aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2021-03-01 18:49:41 -0500
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2021-03-01 23:40:39 -0500
commite50875b3e321428b88b5f2313246995811a82fac (patch)
tree05acad84daf80739ec987f985a65644a4f4ad497
parentc1fbc2ddf15b2f44b615f90b2511349ab974cb83 (diff)
downloadrneovim-e50875b3e321428b88b5f2313246995811a82fac.tar.gz
rneovim-e50875b3e321428b88b5f2313246995811a82fac.tar.bz2
rneovim-e50875b3e321428b88b5f2313246995811a82fac.zip
vim-patch:8.2.2560: setting 'winminheigt' does not take tabline into account
Problem: Setting 'winminheigt' does not take tabline into account. Solution: Subtract the tabline from the available height. (closes vim/vim#7899) https://github.com/vim/vim/commit/39d4cab494248131b6fb07aba633aa4da7871a57 N/A patches for version.c: vim-patch:8.1.0680: not easy to see what features are unavailable Problem: Not easy to see what features are unavailable. Solution: Highlight disabled features in the :version output. (Nazri Ramliy, closes vim/vim#3756) https://github.com/vim/vim/commit/c85ffc9daba6f66d5958ae80249d26f7f81bfced vim-patch:8.2.2196: :version output has extra spaces in compile and link command Problem: :version output has extra spaces in compile and link command. Solution: Adjust QUOTESED. (closes vim/vim#7505) https://github.com/vim/vim/commit/abcbb0e9ad43fc25077e1681528e72ddcbeed300 vim-patch:8.2.2551: MS-Windows: colors test file is not installed Problem: MS-Windows: colors test file is not installed. Solution: Also copy runtime/colors/tools. (Ken Takata, closes vim/vim#7902) https://github.com/vim/vim/commit/d0bce504ec52def729fffa35c8896979af348d32 vim-patch:8.2.2559: MS-Windows: guifont test fails on Windows XP Problem: MS-Windows: guifont test fails on Windows XP. Solution: Check windowsversion(). https://github.com/vim/vim/commit/3650fd709807d5ac182e28d952cbd790c1ad0a6a
-rw-r--r--src/nvim/testdir/test_options.vim23
-rw-r--r--src/nvim/window.c2
-rw-r--r--test/functional/legacy/options_spec.lua19
3 files changed, 42 insertions, 2 deletions
diff --git a/src/nvim/testdir/test_options.vim b/src/nvim/testdir/test_options.vim
index 5a10c9baa6..717a073937 100644
--- a/src/nvim/testdir/test_options.vim
+++ b/src/nvim/testdir/test_options.vim
@@ -1,5 +1,7 @@
" Test for options
+source check.vim
+
func Test_whichwrap()
set whichwrap=b,s
call assert_equal('b,s', &whichwrap)
@@ -604,6 +606,27 @@ func Test_opt_boolean()
set number&
endfunc
+func Test_opt_winminheight_term()
+ " See test/functional/legacy/options_spec.lua
+ CheckRunVimInTerminal
+
+ " The tabline should be taken into account.
+ let lines =<< trim END
+ set wmh=0 stal=2
+ below sp | wincmd _
+ below sp | wincmd _
+ below sp | wincmd _
+ below sp
+ END
+ call writefile(lines, 'Xwinminheight')
+ let buf = RunVimInTerminal('-S Xwinminheight', #{rows: 11})
+ call term_sendkeys(buf, ":set wmh=1\n")
+ call WaitForAssert({-> assert_match('E36: Not enough room', term_getline(buf, 11))})
+
+ call StopVimInTerminal(buf)
+ call delete('Xwinminheight')
+endfunc
+
" Test for setting option value containing spaces with isfname+=32
func Test_isfname_with_options()
set isfname+=32
diff --git a/src/nvim/window.c b/src/nvim/window.c
index 00f49724b6..7c74d43baf 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -5501,7 +5501,7 @@ void win_setminheight(void)
// loop until there is a 'winminheight' that is possible
while (p_wmh > 0) {
- const int room = Rows - p_ch;
+ const int room = Rows - p_ch - tabline_height();
const int needed = frame_minheight(topframe, NULL);
if (room >= needed) {
break;
diff --git a/test/functional/legacy/options_spec.lua b/test/functional/legacy/options_spec.lua
index 1db7afc7a7..598674dbeb 100644
--- a/test/functional/legacy/options_spec.lua
+++ b/test/functional/legacy/options_spec.lua
@@ -1,6 +1,10 @@
+-- See also: src/nvim/testdir/test_options.vim
local helpers = require('test.functional.helpers')(after_each)
local command, clear = helpers.command, helpers.clear
local source, expect = helpers.source, helpers.expect
+local exc_exec = helpers.exc_exec;
+local matches = helpers.matches;
+local Screen = require('test.functional.ui.screen')
describe('options', function()
setup(clear)
@@ -11,7 +15,7 @@ describe('options', function()
end)
describe('set', function()
- setup(clear)
+ before_each(clear)
it("should keep two comma when 'path' is changed", function()
source([[
@@ -24,4 +28,17 @@ describe('set', function()
foo,,bar]])
end)
+
+ it('winminheight works', function()
+ local screen = Screen.new(20, 11)
+ screen:attach()
+ source([[
+ set wmh=0 stal=2
+ below sp | wincmd _
+ below sp | wincmd _
+ below sp | wincmd _
+ below sp
+ ]])
+ matches('E36: Not enough room', exc_exec('set wmh=1'))
+ end)
end)