patch 9.0.1044: setting window height using Python may cause errors
Problem: Setting window height using Python may cause errors.
Solution: When setting "curwin" also set "curbuf". (closes #11687)
diff --git a/src/if_py_both.h b/src/if_py_both.h
index 8dd7f09..110de23 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -4081,10 +4081,12 @@
#endif
savewin = curwin;
curwin = self->win;
+ curbuf = curwin->w_buffer;
VimTryStart();
win_setheight((int) height);
curwin = savewin;
+ curbuf = curwin->w_buffer;
if (VimTryEnd())
return -1;
@@ -4103,10 +4105,12 @@
#endif
savewin = curwin;
curwin = self->win;
+ curbuf = curwin->w_buffer;
VimTryStart();
win_setwidth((int) width);
curwin = savewin;
+ curbuf = curwin->w_buffer;
if (VimTryEnd())
return -1;
diff --git a/src/testdir/test_python3.vim b/src/testdir/test_python3.vim
index 56d2079..5de9464 100644
--- a/src/testdir/test_python3.vim
+++ b/src/testdir/test_python3.vim
@@ -540,6 +540,24 @@
%bw!
endfunc
+" This was causing trouble because "curbuf" was not matching curwin->w_buffer
+func Test_python3_window_set_height()
+ enew!
+ call setline(1, ['aaa', 'bbb', 'ccc'])
+ call cursor(2, 1)
+ set foldmethod=expr
+ new
+ wincmd w
+ python3 vim.windows[0].height = 5
+ call assert_equal(5, winheight(1))
+
+ call feedkeys('j', 'xt')
+ call assert_equal(3, getpos('.')[1])
+
+ bwipe!
+ bwipe!
+endfunc
+
" Test for the python List object
func Test_python3_list()
" Try to convert a null List
diff --git a/src/version.c b/src/version.c
index 0acd217..bc22ab1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1044,
+/**/
1043,
/**/
1042,