patch 9.0.0936: wrong type for "isunnamed" returned by getreginfo() v9.0.0936
authorBram Moolenaar <Bram@vim.org>
Thu, 24 Nov 2022 11:31:29 +0000 (11:31 +0000)
committerBram Moolenaar <Bram@vim.org>
Thu, 24 Nov 2022 11:31:29 +0000 (11:31 +0000)
Problem:    Wrong type for "isunnamed" returned by getreginfo().
Solution:   Use VAR_BOOL instead of VAR_SPECIAL. (closes #11598)

src/evalfunc.c
src/testdir/test_registers.vim
src/version.c

index e4f28edb75573f893c5c13d3349915d45ec7716f..112a2e70b83e0cf2f7123da4f784f834b5b1a98b 100644 (file)
@@ -8415,7 +8415,7 @@ f_getreginfo(typval_T *argvars, typval_T *rettv)
 
        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);
index 35bd1e0a3da832018ebe31dbca70ade59eb9381a..e966932478d8046ab3f24cc48696f0ef23178542 100644 (file)
@@ -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
 
index 42a7e46b6c5b9dfa0ecc77e230c9f457b78adf2f..d7c6ef1e864db88e31a74feae9e86d381adc8719 100644 (file)
@@ -695,6 +695,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    936,
 /**/
     935,
 /**/