diff options
author | James McCoy <jamessan@jamessan.com> | 2017-02-27 12:06:27 -0500 |
---|---|---|
committer | James McCoy <jamessan@jamessan.com> | 2017-02-27 15:00:18 -0500 |
commit | 2f5aee561e94703f09b8cb85dfd5a42b06153992 (patch) | |
tree | d48d0775e3c73fdec5edbcaf81508fd51f66c702 /src/nvim/eval.c | |
parent | eb6651b7a936736be4b9572f7cfec1ac2f8aa07a (diff) | |
download | rneovim-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.c | 12 |
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)); } /********************************************* |