diff options
author | Yegappan Lakshmanan <yegappan@yahoo.com> | 2021-11-15 11:22:09 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-11-15 11:22:09 +0000 |
commit | 733b124a9098d5e2f028fd2e12012b831c9e9024 (patch) | |
tree | 11c6ca590be4c063ecfff8981da824059752828b | |
parent | 0d5a12ea041c112b06b1aafde38846ae4cff8f4c (diff) | |
download | vim-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.c | 10 | ||||
-rw-r--r-- | src/testdir/test_vim9_cmd.vim | 11 | ||||
-rw-r--r-- | src/version.c | 2 |
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, |