mirror of
https://github.com/vim/vim.git
synced 2025-09-28 04:24:06 -04:00
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:
@@ -488,12 +488,8 @@ popup_create(typval_T *argvars, typval_T *rettv, int atcursor)
|
|||||||
int nr;
|
int nr;
|
||||||
|
|
||||||
// Check arguments look OK.
|
// Check arguments look OK.
|
||||||
if (!(argvars[0].v_type == VAR_STRING
|
if (!(argvars[0].v_type == VAR_STRING && argvars[0].vval.v_string != NULL)
|
||||||
&& argvars[0].vval.v_string != NULL
|
&& !(argvars[0].v_type == VAR_LIST && argvars[0].vval.v_list != 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))
|
|
||||||
{
|
{
|
||||||
emsg(_(e_listreq));
|
emsg(_(e_listreq));
|
||||||
return;
|
return;
|
||||||
@@ -560,12 +556,15 @@ popup_create(typval_T *argvars, typval_T *rettv, int atcursor)
|
|||||||
{
|
{
|
||||||
list_T *l = argvars[0].vval.v_list;
|
list_T *l = argvars[0].vval.v_list;
|
||||||
|
|
||||||
if (l->lv_first->li_tv.v_type == VAR_STRING)
|
if (l->lv_len > 0)
|
||||||
// list of strings
|
{
|
||||||
add_popup_strings(buf, l);
|
if (l->lv_first->li_tv.v_type == VAR_STRING)
|
||||||
else
|
// list of strings
|
||||||
// list of dictionaries
|
add_popup_strings(buf, l);
|
||||||
add_popup_dicts(buf, l);
|
else
|
||||||
|
// list of dictionaries
|
||||||
|
add_popup_dicts(buf, l);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete the line of the empty buffer.
|
// Delete the line of the empty buffer.
|
||||||
|
@@ -596,3 +596,17 @@ func Test_popup_close_callback()
|
|||||||
call popup_close(winid, 'done')
|
call popup_close(winid, 'done')
|
||||||
call assert_equal('done', g:result)
|
call assert_equal('done', g:result)
|
||||||
endfunc
|
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
|
||||||
|
@@ -767,6 +767,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1447,
|
||||||
/**/
|
/**/
|
||||||
1446,
|
1446,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user