diff src/popupwin.c @ 16892:60c9ac14a2ec v8.1.1447

patch 8.1.1447: not allowed to create an empty popup commit https://github.com/vim/vim/commit/7b29dd850752b975baef47b66c590f5e978ad847 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jun 2 13:22:11 2019 +0200 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 https://github.com/vim/vim/issues/4470)
author Bram Moolenaar <Bram@vim.org>
date Sun, 02 Jun 2019 13:30:05 +0200
parents 5131023c5728
children 52fc577a087d
line wrap: on
line diff
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -488,12 +488,8 @@ popup_create(typval_T *argvars, typval_T
     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
     {
 	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.