# HG changeset patch # User Bram Moolenaar # Date 1570050903 -7200 # Node ID e6c83ae0c4d0f710fde80c70dfb51f7ae9fb8117 # Parent 228e73d84c3207b61a85d270cfcbf749729853b3 patch 8.1.2109: popup_getoptions() hangs with tab-local popup Commit: https://github.com/vim/vim/commit/1824f45883ef7cc236d2bba89811989a1ccb853c Author: Bram Moolenaar Date: Wed Oct 2 23:06:46 2019 +0200 patch 8.1.2109: popup_getoptions() hangs with tab-local popup Problem: popup_getoptions() hangs with tab-local popup. Solution: Correct pointer name. (Marko Mahni?, closes https://github.com/vim/vim/issues/5006) diff --git a/src/popupwin.c b/src/popupwin.c --- a/src/popupwin.c +++ b/src/popupwin.c @@ -2636,12 +2636,12 @@ f_popup_getoptions(typval_T *argvars, ty i = 1; FOR_ALL_TABPAGES(tp) { - win_T *p; - - for (p = tp->tp_first_popupwin; p != NULL; p = wp->w_next) - if (p->w_id == id) + win_T *twp; + + 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 --- 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 --- 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,