summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYegappan Lakshmanan <yegappan@yahoo.com>2021-11-15 11:22:09 +0000
committerBram Moolenaar <Bram@vim.org>2021-11-15 11:22:09 +0000
commit733b124a9098d5e2f028fd2e12012b831c9e9024 (patch)
tree11c6ca590be4c063ecfff8981da824059752828b
parent0d5a12ea041c112b06b1aafde38846ae4cff8f4c (diff)
downloadvim-git-733b124a9098d5e2f028fd2e12012b831c9e9024.tar.gz
patch 8.2.3596: crash when using :pedit in Vim9 scriptv8.2.3596
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)
-rw-r--r--src/popupwin.c10
-rw-r--r--src/testdir/test_vim9_cmd.vim11
-rw-r--r--src/version.c2
3 files changed, 18 insertions, 5 deletions
diff --git a/src/popupwin.c b/src/popupwin.c
index d86c6c0ef..59bdf86b8 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -1851,13 +1851,13 @@ popup_create(typval_T *argvars, typval_T *rettv, create_type_T type)
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)
{
diff --git a/src/testdir/test_vim9_cmd.vim b/src/testdir/test_vim9_cmd.vim
index 3bc13ade7..9f1cdf12a 100644
--- 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
diff --git a/src/version.c b/src/version.c
index 19014e67a..39a61c915 100644
--- 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,