Problem: Ruby converts v:true and v:false to a number.
Solution: Use Qtrue and Qfalse instead. (Masataka Pocke Kuwabara,
closes #3259)
}
else if (tv->v_type == VAR_SPECIAL)
{
- if (tv->vval.v_number <= VVAL_TRUE)
- result = INT2NUM(tv->vval.v_number);
+ if (tv->vval.v_number == VVAL_TRUE)
+ result = Qtrue;
+ else if (tv->vval.v_number == VVAL_FALSE)
+ result = Qfalse;
} /* else return Qnil; */
return result;
call assert_equal(['{"a"=>"foo", "b"=>123}'], split(l:out, "\n"))
endfunc
+func Test_ruby_evaluate_special_var()
+ let l = [v:true, v:false, v:null, v:none]
+ redir => l:out
+ ruby d = Vim.evaluate("l"); print d
+ redir END
+ call assert_equal(['[true, false, nil, nil]'], split(l:out, "\n"))
+endfunc
+
func Test_rubydo()
" Check deleting lines does not trigger ml_get error.
new
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 220,
/**/
219,
/**/