aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorJames McCoy <jamessan@jamessan.com>2017-02-27 12:06:27 -0500
committerJames McCoy <jamessan@jamessan.com>2017-02-27 15:00:18 -0500
commit2f5aee561e94703f09b8cb85dfd5a42b06153992 (patch)
treed48d0775e3c73fdec5edbcaf81508fd51f66c702 /src/nvim/eval.c
parenteb6651b7a936736be4b9572f7cfec1ac2f8aa07a (diff)
downloadrneovim-2f5aee561e94703f09b8cb85dfd5a42b06153992.tar.gz
rneovim-2f5aee561e94703f09b8cb85dfd5a42b06153992.tar.bz2
rneovim-2f5aee561e94703f09b8cb85dfd5a42b06153992.zip
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
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r--src/nvim/eval.c12
1 files changed, 7 insertions, 5 deletions
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));
}
/*********************************************