summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-10-02 23:06:46 +0200
committerBram Moolenaar <Bram@vim.org>2019-10-02 23:06:46 +0200
commit1824f45883ef7cc236d2bba89811989a1ccb853c (patch)
treefc0547cbda7308aa2878abfefb23a6890a1cf850
parent23324a0b35d18c5caac20b1d543ed2d1f762f5b5 (diff)
patch 8.1.2109: popup_getoptions() hangs with tab-local popupv8.1.2109
Problem: popup_getoptions() hangs with tab-local popup. Solution: Correct pointer name. (Marko Mahnič, closes #5006)
-rw-r--r--src/popupwin.c8
-rw-r--r--src/testdir/test_popupwin.vim12
-rw-r--r--src/version.c2
3 files changed, 18 insertions, 4 deletions
diff --git a/src/popupwin.c b/src/popupwin.c
index a77d98b673..06812073e6 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -2636,12 +2636,12 @@ f_popup_getoptions(typval_T *argvars, typval_T *rettv)
i = 1;
FOR_ALL_TABPAGES(tp)
{
- win_T *p;
+ win_T *twp;
- for (p = tp->tp_first_popupwin; p != NULL; p = wp->w_next)
- if (p->w_id == id)
+ for (twp = tp->tp_first_popupwin; twp != NULL; twp = twp->w_next)
+ if (twp->w_id == id)
break;
- if (p != NULL)
+ if (twp != NULL)
break;
++i;
}
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index b9d6d83019..9d8a0d099b 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -2556,4 +2556,16 @@ func Test_popupwin_recycle_bnr()
call popup_clear()
endfunc
+func Test_popupwin_getoptions_tablocal()
+ topleft split
+ let win1 = popup_create('nothing', #{maxheight: 8})
+ let win2 = popup_create('something', #{maxheight: 10})
+ let win3 = popup_create('something', #{maxheight: 15})
+ call assert_equal(8, popup_getoptions(win1).maxheight)
+ call assert_equal(10, popup_getoptions(win2).maxheight)
+ call assert_equal(15, popup_getoptions(win3).maxheight)
+ call popup_clear()
+ quit
+endfunc
+
" vim: shiftwidth=2 sts=2
diff --git a/src/version.c b/src/version.c
index 469b759b67..00374c20e5 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2109,
+/**/
2108,
/**/
2107,