0
0
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:
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; 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.

View File

@@ -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

View File

@@ -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,
/**/ /**/