Patch 8.2.4530

4 skatījumi
Pāriet uz pirmo nelasīto ziņojumu

Bram Moolenaar

nelasīta,
2022. gada 9. marts 06:57:5609.03.22
uz vim...@googlegroups.com

Patch 8.2.4530
Problem: Making comparison with null work changes legacy behavior.
Solution: Only use the better comparison in Vim9 script. (closes #9910)
Files: src/typval.c, src/testdir/test_expr.vim


*** ../vim-8.2.4529/src/typval.c 2022-03-02 13:13:26.475857972 +0000
--- src/typval.c 2022-03-09 11:50:05.358375030 +0000
***************
*** 1381,1387 ****
}

/*
! * Compare v:null/v:none with another type. Return TRUE if the value is NULL.
*/
int
typval_compare_null(typval_T *tv1, typval_T *tv2)
--- 1381,1387 ----
}

/*
! * Compare v:null with another type. Return TRUE if the value is NULL.
*/
int
typval_compare_null(typval_T *tv1, typval_T *tv2)
***************
*** 1417,1422 ****
--- 1417,1425 ----
default: break;
}
}
+ if (!in_vim9script())
+ return FALSE; // backwards compatible
+
semsg(_(e_cannot_compare_str_with_str),
vartype_name(tv1->v_type), vartype_name(tv2->v_type));
return MAYBE;
*** ../vim-8.2.4529/src/testdir/test_expr.vim 2022-03-08 13:18:10.813020777 +0000
--- src/testdir/test_expr.vim 2022-03-09 11:52:51.305921959 +0000
***************
*** 181,186 ****
--- 181,218 ----
call v9.CheckScriptFailure(lines, 'E121: Undefined variable: null_list')
endfunc

+ func Test_compare_with_null()
+ let s:value = v:null
+ call assert_true(s:value == v:null)
+ let s:value = v:true
+ call assert_false(s:value == v:null)
+ let s:value = v:none
+ call assert_false(s:value == v:null)
+ let s:value = 0
+ call assert_true(s:value == v:null)
+ if has('float')
+ let s:value = 0.0
+ call assert_true(s:value == v:null)
+ endif
+ let s:value = ''
+ call assert_false(s:value == v:null)
+ let s:value = 0z
+ call assert_false(s:value == v:null)
+ let s:value = []
+ call assert_false(s:value == v:null)
+ let s:value = {}
+ call assert_false(s:value == v:null)
+ let s:value = function('len')
+ call assert_false(s:value == v:null)
+ if has('job')
+ let s:value = test_null_job()
+ call assert_true(s:value == v:null)
+ let s:value = test_null_channel()
+ call assert_true(s:value == v:null)
+ endif
+ unlet s:value
+ endfunc
+
func Test_setreg_null_list()
let lines =<< trim END
call setreg('x', test_null_list())
*** ../vim-8.2.4529/src/version.c 2022-03-08 19:43:51.692198946 +0000
--- src/version.c 2022-03-09 11:36:08.368674934 +0000
***************
*** 752,753 ****
--- 752,755 ----
{ /* Add new patch number below this line */
+ /**/
+ 4530,
/**/

--
hundred-and-one symptoms of being an internet addict:
213. Your kids start referring to you as "that guy in front of the monitor."

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// \\\
\\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
Atbildēt visiem
Atbildēt autoram
Pārsūtīt
0 jauni ziņojumi