From b7cb8f0597c42f209ec460a1850df53bd655c81c Mon Sep 17 00:00:00 2001 From: ZyX Date: Sat, 6 Feb 2016 19:09:24 +0300 Subject: eval: Make assert_true and assert_false accept v:true and v:false --- src/nvim/eval.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 22a12d353a..63fd392a3a 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -7587,16 +7587,20 @@ static void f_assert_equal(typval_T *argvars, typval_T *rettv) } // Common for assert_true() and assert_false(). -static void assert_bool(typval_T *argvars, bool isTrue) +static void assert_bool(typval_T *argvars, bool is_true) { int error = (int)false; garray_T ga; - if (argvars[0].v_type != VAR_NUMBER || - (get_tv_number_chk(&argvars[0], &error) == 0) == isTrue || error) { + if ((argvars[0].v_type != VAR_NUMBER || + (get_tv_number_chk(&argvars[0], &error) == 0) == is_true || error) + && (argvars[0].v_type != VAR_SPECIAL + || argvars[0].vval.v_special != (is_true + ?kSpecialVarTrue + :kSpecialVarFalse))) { prepare_assert_error(&ga); fill_assert_error(&ga, &argvars[1], - (char_u *)(isTrue ? "True" : "False"), + (char_u *)(is_true ? "True" : "False"), NULL, &argvars[0]); assert_error(&ga); ga_clear(&ga); -- cgit