changeset 31205:83b25278bac3 v9.0.0936

patch 9.0.0936: wrong type for "isunnamed" returned by getreginfo() Commit: https://github.com/vim/vim/commit/82946e1439d31e86dfeb6166415c73e70475cce2 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Nov 24 11:31:29 2022 +0000 patch 9.0.0936: wrong type for "isunnamed" returned by getreginfo() Problem: Wrong type for "isunnamed" returned by getreginfo(). Solution: Use VAR_BOOL instead of VAR_SPECIAL. (closes https://github.com/vim/vim/issues/11598)
author Bram Moolenaar <Bram@vim.org>
date Thu, 24 Nov 2022 12:45:03 +0100
parents 64244fdfa114
children 6d7b4f9cdc14
files src/evalfunc.c src/testdir/test_registers.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
@@ -8415,7 +8415,7 @@ f_getreginfo(typval_T *argvars, typval_T
 
 	if (item != NULL)
 	{
-	    item->di_tv.v_type = VAR_SPECIAL;
+	    item->di_tv.v_type = VAR_BOOL;
 	    item->di_tv.vval.v_number = regname == buf[0]
 						      ? VVAL_TRUE : VVAL_FALSE;
 	    (void)dict_add(dict, item);
--- a/src/testdir/test_registers.vim
+++ b/src/testdir/test_registers.vim
@@ -520,6 +520,13 @@ func Test_get_reginfo()
   nunmap <F2>
   unlet g:RegInfo
 
+  " The type of "isunnamed" was VAR_SPECIAL but should be VAR_BOOL.  Can only
+  " be noticed when using json_encod().
+  call setreg('a', 'foo')
+  let reginfo = getreginfo('a')
+  let expected = #{regcontents: ['foo'], isunnamed: v:false, regtype: 'v'}
+  call assert_equal(json_encode(expected), json_encode(reginfo))
+
   bwipe!
 endfunc
 
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    936,
+/**/
     935,
 /**/
     934,