changeset 21967:bf68435a695a v8.2.1533

patch 8.2.1533: Vim9: error when passing getreginfo() result to setreg() Commit: https://github.com/vim/vim/commit/6a950581da52b410a74531044aae8f1f8f38a7df Author: Bram Moolenaar <Bram@vim.org> Date: Fri Aug 28 16:39:33 2020 +0200 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 https://github.com/vim/vim/issues/6784)
author Bram Moolenaar <Bram@vim.org>
date Fri, 28 Aug 2020 16:45:04 +0200
parents 714c6d513c49
children 613ecf205d6a
files src/evalfunc.c src/testdir/test_vim9_func.vim src/version.c
diffstat 3 files changed, 10 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -7427,7 +7427,7 @@ f_setreg(typval_T *argvars, typval_T *re
 		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
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1419,6 +1419,13 @@ def Test_setbufvar()
    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
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1533,
+/**/
     1532,
 /**/
     1531,