]> granicus.if.org Git - vim/commitdiff
patch 8.2.1592: Vim9: passing "true" to char2nr() fails v8.2.1592
authorBram Moolenaar <Bram@vim.org>
Fri, 4 Sep 2020 17:50:57 +0000 (19:50 +0200)
committerBram Moolenaar <Bram@vim.org>
Fri, 4 Sep 2020 17:50:57 +0000 (19:50 +0200)
Problem:    Vim9: passing "true" to char2nr() fails.
Solution:   Use tv_get_bool_chk(). (closes #6865)

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

index ac75a7d5673b0cf6fa45e4a7f9a4c9a496890abd..110935df3dc455931f8145ca3b497216bf0c513d 100644 (file)
@@ -1710,7 +1710,7 @@ f_char2nr(typval_T *argvars, typval_T *rettv)
        int     utf8 = 0;
 
        if (argvars[1].v_type != VAR_UNKNOWN)
-           utf8 = (int)tv_get_number_chk(&argvars[1], NULL);
+           utf8 = (int)tv_get_bool_chk(&argvars[1], NULL);
 
        if (utf8)
            rettv->vval.v_number = utf_ptr2char(tv_get_string(&argvars[0]));
index ad3268af528395da9e18584f38e5d754b92d1955..3e217300fe4624ad54e50cb441c61852afbb94b2 100644 (file)
@@ -1339,6 +1339,10 @@ def Test_col()
   assert_equal(5, col([1, '$']))
 enddef
 
+def Test_char2nr()
+  assert_equal(12354, char2nr('あ', true))
+enddef
+
 def Test_getreg_return_type()
   let s1: string = getreg('"')
   let s2: string = getreg('"', 1)
index 60c62945a6d1dacac57027f3a40042d7e405f675..111405fb12115df94895b48d8208164108861ced 100644 (file)
@@ -754,6 +754,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1592,
 /**/
     1591,
 /**/