changeset 7042:e8eccb9621f7 v7.4.834

commit https://github.com/vim/vim/commit/7e47d1ac6a9ae0e5a7167aa34ff651a9c39c1641 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Aug 25 16:19:05 2015 +0200 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)
author Christian Brabandt <cb@256bit.org>
date Tue, 25 Aug 2015 17:20:27 +0200
parents 0c84d2003fa6
children 6cd0c39b2ff2
files src/eval.c src/testdir/test91.in src/testdir/test91.ok src/version.c
diffstat 4 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/eval.c
+++ b/src/eval.c
@@ -12291,7 +12291,8 @@ f_gettabvar(argvars, rettv)
     {
 	/* 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 */
--- a/src/testdir/test91.in
+++ b/src/testdir/test91.in
@@ -5,8 +5,12 @@ STARTTEST
 :so small.vim
 :so mbyte.vim
 :"
+:" 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()
-:" Use strings to test for memory leaks.
 :let b:var_num = '1234'
 :let def_num = '5678'
 :$put =string(getbufvar(1, 'var_num'))
--- a/src/testdir/test91.ok
+++ b/src/testdir/test91.ok
@@ -1,4 +1,6 @@
 start:
+'abcd'
+'abcd'
 '1234'
 '1234'
 {'var_num': '1234'}
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    834,
+/**/
     833,
 /**/
     832,