aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorerw7 <erw7.github@gmail.com>2019-03-09 22:10:56 +0900
committerJustin M. Keyes <justinkz@gmail.com>2019-03-09 14:10:56 +0100
commitf719247118119cd6cd8158f3fead995175b92566 (patch)
treeecd3ade6dd757fa54aaddc151eb4eb99cd3b3453
parent4352d41db0d93ab9266c64be48eda872cb5ea589 (diff)
downloadrneovim-f719247118119cd6cd8158f3fead995175b92566.tar.gz
rneovim-f719247118119cd6cd8158f3fead995175b92566.tar.bz2
rneovim-f719247118119cd6cd8158f3fead995175b92566.zip
floating-window: fix crash setting cmdheight #9685
fixes #9680
-rw-r--r--src/nvim/window.c7
-rw-r--r--test/functional/ui/float_spec.lua7
2 files changed, 11 insertions, 3 deletions
diff --git a/src/nvim/window.c b/src/nvim/window.c
index bce4289ab4..2d71c19230 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -5546,10 +5546,11 @@ void command_height(void)
* p_ch was changed in another tab page. */
curtab->tp_ch_used = p_ch;
- /* Find bottom frame with width of screen. */
- frp = lastwin->w_frame;
- while (frp->fr_width != Columns && frp->fr_parent != NULL)
+ // Find bottom frame with width of screen.
+ frp = lastwin_nofloating()->w_frame;
+ while (frp->fr_width != Columns && frp->fr_parent != NULL) {
frp = frp->fr_parent;
+ }
/* Avoid changing the height of a window with 'winfixheight' set. */
while (frp->fr_prev != NULL && frp->fr_layout == FR_LEAF
diff --git a/test/functional/ui/float_spec.lua b/test/functional/ui/float_spec.lua
index 2ed3606491..3be2182eb4 100644
--- a/test/functional/ui/float_spec.lua
+++ b/test/functional/ui/float_spec.lua
@@ -1019,6 +1019,13 @@ describe('floating windows', function()
end
end)
+ it('does not crash when set cmdheight #9680', function()
+ local buf = meths.create_buf(false,false)
+ meths.open_win(buf, false, 20, 2, {relative='editor', row=2, col=5})
+ command("set cmdheight=2")
+ eq(1, meths.eval('1'))
+ end)
+
describe('and completion', function()
before_each(function()
local buf = meths.create_buf(false,false)