patch 8.2.1782: Vim9: cannot pass boolean to mapset()
Problem: Vim9: cannot pass boolean to mapset().
Solution: Use get_tv_bool(). (closes #7041)
diff --git a/src/map.c b/src/map.c
index 6a994d4..b46ba37 100644
--- a/src/map.c
+++ b/src/map.c
@@ -2307,7 +2307,7 @@
if (which == NULL)
return;
mode = get_map_mode(&which, 0);
- is_abbr = (int)tv_get_number(&argvars[1]);
+ is_abbr = (int)tv_get_bool(&argvars[1]);
if (argvars[2].v_type != VAR_DICT)
{
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index eec5af6..509c7fa 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1721,6 +1721,14 @@
iunabbrev foo
enddef
+def Test_maparg_mapset()
+ nnoremap <F3> :echo "hit F3"<CR>
+ var mapsave = maparg('<F3>', 'n', false, true)
+ mapset('n', false, mapsave)
+
+ nunmap <F3>
+enddef
+
def Test_nr2char()
nr2char(97, true)->assert_equal('a')
enddef
diff --git a/src/version.c b/src/version.c
index 0127186..9619a33 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1782,
+/**/
1781,
/**/
1780,