diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-04-04 13:44:37 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-04-04 13:44:37 +0200 |
commit | fda1bff39f89775b20a2d88ef3903656d52f66ad (patch) | |
tree | 3676cb1f5c70fb693ee24e10da893ef01babe911 /src/evalfunc.c | |
parent | e5e4e22c1c15c8c22b14935affe969569acc8df9 (diff) |
patch 8.1.1111: it is not easy to check for infinityv8.1.1111
Problem: It is not easy to check for infinity.
Solution: Add isinf(). (Ozaki Kiichi, closes #3787)
Diffstat (limited to 'src/evalfunc.c')
-rw-r--r-- | src/evalfunc.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c index 2eafe140ce..4a54d6dc9d 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -237,6 +237,7 @@ static void f_invert(typval_T *argvars, typval_T *rettv); static void f_isdirectory(typval_T *argvars, typval_T *rettv); static void f_islocked(typval_T *argvars, typval_T *rettv); #if defined(FEAT_FLOAT) && defined(HAVE_MATH_H) +static void f_isinf(typval_T *argvars, typval_T *rettv); static void f_isnan(typval_T *argvars, typval_T *rettv); #endif static void f_items(typval_T *argvars, typval_T *rettv); @@ -721,6 +722,9 @@ static struct fst {"insert", 2, 3, f_insert}, {"invert", 1, 1, f_invert}, {"isdirectory", 1, 1, f_isdirectory}, +#if defined(FEAT_FLOAT) && defined(HAVE_MATH_H) + {"isinf", 1, 1, f_isinf}, +#endif {"islocked", 1, 1, f_islocked}, #if defined(FEAT_FLOAT) && defined(HAVE_MATH_H) {"isnan", 1, 1, f_isnan}, @@ -6582,9 +6586,6 @@ f_has(typval_T *argvars, typval_T *rettv) #ifdef FEAT_TAG_BINS "tag_binary", #endif -#ifdef FEAT_TAG_OLDSTATIC - "tag_old_static", -#endif #ifdef FEAT_TCL # ifndef DYNAMIC_TCL "tcl", @@ -7443,6 +7444,16 @@ f_islocked(typval_T *argvars, typval_T *rettv) #if defined(FEAT_FLOAT) && defined(HAVE_MATH_H) /* + * "isinf()" function + */ + static void +f_isinf(typval_T *argvars, typval_T *rettv) +{ + if (argvars[0].v_type == VAR_FLOAT && isinf(argvars[0].vval.v_float)) + rettv->vval.v_number = argvars[0].vval.v_float > 0.0 ? 1 : -1; +} + +/* * "isnan()" function */ static void |