From: Bram Moolenaar Date: Sun, 21 Feb 2021 22:12:18 +0000 (+0100) Subject: patch 8.2.2541: popup_create() does not allow boolean for "cursorline" X-Git-Tag: v8.2.2541 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6bfc475f717aa0412d13163d47ff6210fa611fb5;p=vim patch 8.2.2541: popup_create() does not allow boolean for "cursorline" Problem: Popup_create() does not allow boolean for "cursorline". Solution: Use dict_get_bool(). (issue #7869) --- diff --git a/src/popupwin.c b/src/popupwin.c index 1122f48e7..335345f3a 100644 --- a/src/popupwin.c +++ b/src/popupwin.c @@ -873,18 +873,13 @@ apply_general_options(win_T *wp, dict_T *dict) handle_moved_argument(wp, di, TRUE); } - di = dict_find(dict, (char_u *)"cursorline", -1); - if (di != NULL) + nr = dict_get_bool(dict, (char_u *)"cursorline", -1); + if (nr != -1) { - if (di->di_tv.v_type == VAR_NUMBER) - { - if (di->di_tv.vval.v_number != 0) - wp->w_popup_flags |= POPF_CURSORLINE; - else - wp->w_popup_flags &= ~POPF_CURSORLINE; - } + if (nr != 0) + wp->w_popup_flags |= POPF_CURSORLINE; else - semsg(_(e_invargval), "cursorline"); + wp->w_popup_flags &= ~POPF_CURSORLINE; } di = dict_find(dict, (char_u *)"filter", -1); diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim index 44b18005f..f1a4b52b1 100644 --- a/src/testdir/test_popupwin.vim +++ b/src/testdir/test_popupwin.vim @@ -2978,6 +2978,10 @@ func Test_popup_cursorline() call assert_equal(1, popup_getoptions(winid).cursorline) call popup_close(winid) + let winid = popup_create('some text', #{ cursorline: v:true, }) + call assert_equal(1, popup_getoptions(winid).cursorline) + call popup_close(winid) + let winid = popup_create('some text', #{ cursorline: 0, }) call assert_equal(0, popup_getoptions(winid).cursorline) call popup_close(winid) @@ -3112,6 +3116,15 @@ func Test_popup_cursorline() call delete('XtestPopupCursorLine') endfunc +def Test_popup_cursorline_vim9() + var winid = popup_create('some text', { cursorline: true, }) + assert_equal(1, popup_getoptions(winid).cursorline) + popup_close(winid) + + assert_fails("popup_create('some text', { cursorline: 2, })", 'E1023:') + popup_clear() +enddef + func Test_previewpopup() CheckScreendump CheckFeature quickfix diff --git a/src/version.c b/src/version.c index 25ea70bee..d6ee9bbb2 100644 --- a/src/version.c +++ b/src/version.c @@ -750,6 +750,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2541, /**/ 2540, /**/