From 2f5aee561e94703f09b8cb85dfd5a42b06153992 Mon Sep 17 00:00:00 2001 From: James McCoy Date: Mon, 27 Feb 2017 12:06:27 -0500 Subject: vim-patch:7.4.1992 Problem: Values for true and false can be confusing. Solution: Update the documentation. Add a test. Make v:true evaluate to TRUE for a non-zero-arg. https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057 --- src/nvim/eval.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/nvim/eval.c') diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 942a82a040..ab8f75d318 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -7715,11 +7715,13 @@ static void emsg_funcname(char *ermsg, char_u *name) */ static int non_zero_arg(typval_T *argvars) { - return (argvars[0].v_type == VAR_NUMBER - && argvars[0].vval.v_number != 0) - || (argvars[0].v_type == VAR_STRING - && argvars[0].vval.v_string != NULL - && *argvars[0].vval.v_string != NUL); + return ((argvars[0].v_type == VAR_NUMBER + && argvars[0].vval.v_number != 0) + || (argvars[0].v_type == VAR_SPECIAL + && argvars[0].vval.v_special == kSpecialVarTrue) + || (argvars[0].v_type == VAR_STRING + && argvars[0].vval.v_string != NULL + && *argvars[0].vval.v_string != NUL)); } /********************************************* -- cgit