changeset 26127:80e69293217c v8.2.3596

patch 8.2.3596: crash when using :pedit in Vim9 script Commit: https://github.com/vim/vim/commit/733b124a9098d5e2f028fd2e12012b831c9e9024 Author: Yegappan Lakshmanan <yegappan@yahoo.com> Date: Mon Nov 15 11:22:09 2021 +0000 patch 8.2.3596: crash when using :pedit in Vim9 script Problem: Crash when using :pedit in Vim9 script. Solution: Move check for arguments to after checking there are arguments. (Yegappan Lakshmanan, closes #9134, closes #9135)
author Bram Moolenaar <Bram@vim.org>
date Mon, 15 Nov 2021 12:30:07 +0100
parents 9a8de2345380
children ba2b6a32f536
files src/popupwin.c src/testdir/test_vim9_cmd.vim src/version.c
diffstat 3 files changed, 18 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -1851,13 +1851,13 @@ popup_create(typval_T *argvars, typval_T
     int		nr;
     int		i;
 
-    if (in_vim9script()
-	    && (check_for_string_or_number_or_list_arg(argvars, 0) == FAIL
-		|| check_for_dict_arg(argvars, 1) == FAIL))
-	return NULL;
-
     if (argvars != NULL)
     {
+	if (in_vim9script()
+		&& (check_for_string_or_number_or_list_arg(argvars, 0) == FAIL
+		    || check_for_dict_arg(argvars, 1) == FAIL))
+	    return NULL;
+
 	// Check that arguments look OK.
 	if (argvars[0].v_type == VAR_NUMBER)
 	{
--- a/src/testdir/test_vim9_cmd.vim
+++ b/src/testdir/test_vim9_cmd.vim
@@ -1570,5 +1570,16 @@ def Test_no_space_after_command()
   CheckDefExecAndScriptFailure(lines, 'E486:', 1)
 enddef
 
+" Test for the 'popuppreview' option
+def Test_popuppreview()
+  set previewpopup=height:10,width:60
+  pedit Xfile
+  var id = popup_findpreview()
+  assert_notequal(id, 0)
+  assert_match('Xfile', popup_getoptions(id).title)
+  popup_clear()
+  set previewpopup&
+enddef
+
 
 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3596,
+/**/
     3595,
 /**/
     3594,