mirror of
https://github.com/vim/vim.git
synced 2025-10-17 07:44:28 -04:00
patch 9.1.1795: Vim9: popup_show() may return void
Problem: Vim9: popup_show() may return void Solution: Modify popup_show() to return -1 for an invalid popup window id (Yegappan Lakshmanan). fixes: #18389 closes: #18401 Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
7bb733f6bf
commit
773054b976
@@ -1,4 +1,4 @@
|
|||||||
*builtin.txt* For Vim version 9.1. Last change: 2025 Sep 24
|
*builtin.txt* For Vim version 9.1. Last change: 2025 Sep 26
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -451,7 +451,7 @@ popup_setbuf({id}, {buf}) Bool set the buffer for the popup window {id}
|
|||||||
popup_setoptions({id}, {options})
|
popup_setoptions({id}, {options})
|
||||||
none set options for popup window {id}
|
none set options for popup window {id}
|
||||||
popup_settext({id}, {text}) none set the text of popup window {id}
|
popup_settext({id}, {text}) none set the text of popup window {id}
|
||||||
popup_show({id}) none unhide popup window {id}
|
popup_show({id}) Number unhide popup window {id}
|
||||||
pow({x}, {y}) Float {x} to the power of {y}
|
pow({x}, {y}) Float {x} to the power of {y}
|
||||||
prevnonblank({lnum}) Number line nr of non-blank line <= {lnum}
|
prevnonblank({lnum}) Number line nr of non-blank line <= {lnum}
|
||||||
printf({fmt}, {expr1}...) String format text
|
printf({fmt}, {expr1}...) String format text
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
*popup.txt* For Vim version 9.1. Last change: 2025 Aug 27
|
*popup.txt* For Vim version 9.1. Last change: 2025 Sep 26
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -639,10 +639,17 @@ popup_settext({id}, {text}) *popup_settext()*
|
|||||||
|
|
||||||
|
|
||||||
popup_show({id}) *popup_show()*
|
popup_show({id}) *popup_show()*
|
||||||
If {id} is a hidden popup, show it now.
|
Show a hidden popup window identified by {id}.
|
||||||
For {id} see `popup_hide()`.
|
Use {id} as returned by |popup_create()|.
|
||||||
If {id} is the info popup it will be positioned next to the
|
|
||||||
current popup menu item.
|
If the popup is currently hidden, it will be made visible.
|
||||||
|
See |popup_hide()| to hide a popup.
|
||||||
|
|
||||||
|
If {id} refers to an info popup, it will be positioned next to
|
||||||
|
the currently selected item in the popup menu.
|
||||||
|
|
||||||
|
Returns -1 if a popup window with {id} does not exist.
|
||||||
|
Returns 0 on success.
|
||||||
|
|
||||||
Return type: |Number|
|
Return type: |Number|
|
||||||
|
|
||||||
|
@@ -2652,7 +2652,7 @@ static const funcentry_T global_functions[] =
|
|||||||
{"popup_settext", 2, 2, FEARG_1, arg2_number_string_or_list,
|
{"popup_settext", 2, 2, FEARG_1, arg2_number_string_or_list,
|
||||||
ret_void, PROP_FUNC(f_popup_settext)},
|
ret_void, PROP_FUNC(f_popup_settext)},
|
||||||
{"popup_show", 1, 1, FEARG_1, arg1_number,
|
{"popup_show", 1, 1, FEARG_1, arg1_number,
|
||||||
ret_void, PROP_FUNC(f_popup_show)},
|
ret_number, PROP_FUNC(f_popup_show)},
|
||||||
{"pow", 2, 2, FEARG_1, arg2_float_or_nr,
|
{"pow", 2, 2, FEARG_1, arg2_float_or_nr,
|
||||||
ret_float, f_pow},
|
ret_float, f_pow},
|
||||||
{"prevnonblank", 1, 1, FEARG_1, arg1_lnum,
|
{"prevnonblank", 1, 1, FEARG_1, arg1_lnum,
|
||||||
|
@@ -2832,6 +2832,9 @@ f_popup_show(typval_T *argvars, typval_T *rettv UNUSED)
|
|||||||
int id;
|
int id;
|
||||||
win_T *wp;
|
win_T *wp;
|
||||||
|
|
||||||
|
rettv->v_type = VAR_NUMBER;
|
||||||
|
rettv->vval.v_number = -1;
|
||||||
|
|
||||||
if (in_vim9script() && check_for_number_arg(argvars, 0) == FAIL)
|
if (in_vim9script() && check_for_number_arg(argvars, 0) == FAIL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -2846,6 +2849,8 @@ f_popup_show(typval_T *argvars, typval_T *rettv UNUSED)
|
|||||||
if (wp->w_popup_flags & POPF_INFO)
|
if (wp->w_popup_flags & POPF_INFO)
|
||||||
pum_position_info_popup(wp);
|
pum_position_info_popup(wp);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
rettv->vval.v_number = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -1264,7 +1264,7 @@ func Test_popup_hide()
|
|||||||
|
|
||||||
" no error non-existing window
|
" no error non-existing window
|
||||||
eval 1234234->popup_hide()
|
eval 1234234->popup_hide()
|
||||||
call popup_show(41234234)
|
call assert_equal(-1, popup_show(41234234))
|
||||||
|
|
||||||
bwipe!
|
bwipe!
|
||||||
endfunc
|
endfunc
|
||||||
@@ -2623,7 +2623,7 @@ func Test_popup_hidden()
|
|||||||
exe "normal anot used by filter\<Esc>"
|
exe "normal anot used by filter\<Esc>"
|
||||||
call assert_equal('not used by filter', getline(1))
|
call assert_equal('not used by filter', getline(1))
|
||||||
|
|
||||||
call popup_show(winid)
|
call assert_equal(0, popup_show(winid))
|
||||||
call feedkeys('y', "xt")
|
call feedkeys('y', "xt")
|
||||||
call assert_equal(1, s:cb_res)
|
call assert_equal(1, s:cb_res)
|
||||||
|
|
||||||
|
@@ -3269,6 +3269,7 @@ enddef
|
|||||||
def Test_popup_show()
|
def Test_popup_show()
|
||||||
v9.CheckSourceDefAndScriptFailure(['popup_show("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
|
v9.CheckSourceDefAndScriptFailure(['popup_show("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1'])
|
||||||
v9.CheckSourceDefAndScriptFailure(['popup_show(true)'], ['E1013: Argument 1: type mismatch, expected number but got bool', 'E1210: Number required for argument 1'])
|
v9.CheckSourceDefAndScriptFailure(['popup_show(true)'], ['E1013: Argument 1: type mismatch, expected number but got bool', 'E1210: Number required for argument 1'])
|
||||||
|
v9.CheckSourceDefAndScriptSuccess(['assert_equal(-1, popup_show(100))'])
|
||||||
enddef
|
enddef
|
||||||
|
|
||||||
def Test_prevnonblank()
|
def Test_prevnonblank()
|
||||||
|
@@ -729,6 +729,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 */
|
||||||
|
/**/
|
||||||
|
1795,
|
||||||
/**/
|
/**/
|
||||||
1794,
|
1794,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user