patch 7.4.834
Problem: gettabvar() doesn't work after Vim start. (Szymon Wrozynski)
Solution: Handle first window in tab still being NULL. (Christian Brabandt)
diff --git a/src/eval.c b/src/eval.c
index fe0a66a..e2f40f0 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -12291,7 +12291,8 @@
{
/* Set tp to be our tabpage, temporarily. Also set the window to the
* first window in the tabpage, otherwise the window is not valid. */
- if (switch_win(&oldcurwin, &oldtabpage, tp->tp_firstwin, tp, TRUE)
+ if (switch_win(&oldcurwin, &oldtabpage,
+ tp->tp_firstwin == NULL ? firstwin : tp->tp_firstwin, tp, TRUE)
== OK)
{
/* look up the variable */
diff --git a/src/testdir/test91.in b/src/testdir/test91.in
index b66776b..e1365cb 100644
--- a/src/testdir/test91.in
+++ b/src/testdir/test91.in
@@ -5,8 +5,12 @@
:so small.vim
:so mbyte.vim
:"
-:" Test for getbufvar()
:" Use strings to test for memory leaks.
+:" First, check that in an empty window, gettabvar() returns the correct value
+:let t:testvar='abcd'
+:$put =string(gettabvar(1,'testvar'))
+:$put =string(gettabvar(1,'testvar'))
+:" Test for getbufvar()
:let b:var_num = '1234'
:let def_num = '5678'
:$put =string(getbufvar(1, 'var_num'))
diff --git a/src/testdir/test91.ok b/src/testdir/test91.ok
index 809952b..62adec1 100644
--- a/src/testdir/test91.ok
+++ b/src/testdir/test91.ok
@@ -1,4 +1,6 @@
start:
+'abcd'
+'abcd'
'1234'
'1234'
{'var_num': '1234'}
diff --git a/src/version.c b/src/version.c
index 0319edb..3e46e0f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 834,
+/**/
833,
/**/
832,