1
0
forked from aniani/vim

patch 8.1.1447: not allowed to create an empty popup

Problem:    Not allowed to create an empty popup.
Solution:   Remove restriction that there is some text. (closes #4470)
This commit is contained in:
Bram Moolenaar 2019-06-02 13:22:11 +02:00
parent 9eaac89650
commit 7b29dd8507
3 changed files with 27 additions and 12 deletions

View File

@ -488,12 +488,8 @@ popup_create(typval_T *argvars, typval_T *rettv, int atcursor)
int nr;
// Check arguments look OK.
if (!(argvars[0].v_type == VAR_STRING
&& argvars[0].vval.v_string != NULL
&& STRLEN(argvars[0].vval.v_string) > 0)
&& !(argvars[0].v_type == VAR_LIST
&& argvars[0].vval.v_list != NULL
&& argvars[0].vval.v_list->lv_len > 0))
if (!(argvars[0].v_type == VAR_STRING && argvars[0].vval.v_string != NULL)
&& !(argvars[0].v_type == VAR_LIST && argvars[0].vval.v_list != NULL))
{
emsg(_(e_listreq));
return;
@ -560,12 +556,15 @@ popup_create(typval_T *argvars, typval_T *rettv, int atcursor)
{
list_T *l = argvars[0].vval.v_list;
if (l->lv_first->li_tv.v_type == VAR_STRING)
// list of strings
add_popup_strings(buf, l);
else
// list of dictionaries
add_popup_dicts(buf, l);
if (l->lv_len > 0)
{
if (l->lv_first->li_tv.v_type == VAR_STRING)
// list of strings
add_popup_strings(buf, l);
else
// list of dictionaries
add_popup_dicts(buf, l);
}
}
// Delete the line of the empty buffer.

View File

@ -596,3 +596,17 @@ func Test_popup_close_callback()
call popup_close(winid, 'done')
call assert_equal('done', g:result)
endfunc
func Test_popup_empty()
let winid = popup_create('', {'padding': [2,2,2,2]})
redraw
let pos = popup_getpos(winid)
call assert_equal(4, pos.width)
call assert_equal(5, pos.height)
let winid = popup_create([], {'border': []})
redraw
let pos = popup_getpos(winid)
call assert_equal(2, pos.width)
call assert_equal(3, pos.height)
endfunc

View File

@ -767,6 +767,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1447,
/**/
1446,
/**/