patch 8.2.1533: Vim9: error when passing getreginfo() result to setreg()
Problem: Vim9: error when passing getreginfo() result to setreg().
Solution: Use dict_get_bool() for "isunnamed". (closes #6784)
diff --git a/src/evalfunc.c b/src/evalfunc.c
index fcfd4b1..270dcd2 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -7427,7 +7427,7 @@
regname = pointreg;
}
}
- else if (dict_get_number(d, (char_u *)"isunnamed"))
+ else if (dict_get_bool(d, (char_u *)"isunnamed", -1) > 0)
pointreg = regname;
}
else
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 412e4a6..2c23a0e 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1419,6 +1419,13 @@
setlocal ts=8
enddef
+def Test_setreg()
+ setreg('a', ['aaa', 'bbb', 'ccc'])
+ let reginfo = getreginfo('a')
+ setreg('a', reginfo)
+ assert_equal(reginfo, getreginfo('a'))
+enddef
+
def Fibonacci(n: number): number
if n < 2
return n
diff --git a/src/version.c b/src/version.c
index ba62765..e6299f4 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1533,
+/**/
1532,
/**/
1531,