diff options
author | Bram Moolenaar <Bram@vim.org> | 2013-06-10 20:10:44 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2013-06-10 20:10:44 +0200 |
commit | a2e14fc764c306cc33fe174707756be70f883319 (patch) | |
tree | 65543c6ab65e37ffb103689045600c18a62e84dc | |
parent | 0bdda37fb4b8118ec4bd797eddca9eaf5d3b381d (diff) | |
download | vim-a2e14fc764c306cc33fe174707756be70f883319.zip |
updated for version 7.3.1159
Problem: The round() function is not always available. (Christ van
Willegen)
Solution: Use the solution from f_round().
-rw-r--r-- | src/eval.c | 14 | ||||
-rw-r--r-- | src/ex_cmds2.c | 2 | ||||
-rw-r--r-- | src/proto/eval.pro | 7 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 19 insertions, 6 deletions
diff --git a/src/eval.c b/src/eval.c index 7250556fc..38893c795 100644 --- a/src/eval.c +++ b/src/eval.c @@ -15774,6 +15774,17 @@ theend: } #ifdef FEAT_FLOAT + +/* + * round() is not in C90, use ceil() or floor() instead. + */ + float_T +vim_round(f) + float_T f; +{ + return f > 0 ? floor(f + 0.5) : ceil(f - 0.5); +} + /* * "round({float})" function */ @@ -15786,8 +15797,7 @@ f_round(argvars, rettv) rettv->v_type = VAR_FLOAT; if (get_float_arg(argvars, &f) == OK) - /* round() is not in C90, use ceil() or floor() instead. */ - rettv->vval.v_float = f > 0 ? floor(f + 0.5) : ceil(f - 0.5); + rettv->vval.v_float = vim_round(f); else rettv->vval.v_float = 0.0; } diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c index 66b7e4e16..353ae8981 100644 --- a/src/ex_cmds2.c +++ b/src/ex_cmds2.c @@ -982,7 +982,7 @@ profile_divide(tm, count, tm2) double usec = (tm->tv_sec * 1000000.0 + tm->tv_usec) / count; tm2->tv_sec = floor(usec / 1000000.0); - tm2->tv_usec = round(usec - (tm2->tv_sec * 1000000.0)); + tm2->tv_usec = vim_round(usec - (tm2->tv_sec * 1000000.0)); # endif } } diff --git a/src/proto/eval.pro b/src/proto/eval.pro index 3f2816ec2..ee2da1b02 100644 --- a/src/proto/eval.pro +++ b/src/proto/eval.pro @@ -75,13 +75,12 @@ int dict_add_list __ARGS((dict_T *d, char *key, list_T *list)); dictitem_T *dict_find __ARGS((dict_T *d, char_u *key, int len)); char_u *get_dict_string __ARGS((dict_T *d, char_u *key, int save)); long get_dict_number __ARGS((dict_T *d, char_u *key)); -void dict_extend __ARGS((dict_T *d1, dict_T *d2, char_u *action)); char_u *get_function_name __ARGS((expand_T *xp, int idx)); char_u *get_expr_name __ARGS((expand_T *xp, int idx)); -char_u *get_expanded_name __ARGS((char_u *name, int check)); -int translated_function_exists __ARGS((char_u *name)); int func_call __ARGS((char_u *name, typval_T *args, dict_T *selfdict, typval_T *rettv)); +void dict_extend __ARGS((dict_T *d1, dict_T *d2, char_u *action)); void mzscheme_call_vim __ARGS((char_u *name, typval_T *args, typval_T *rettv)); +float_T vim_round __ARGS((float_T f)); long do_searchpair __ARGS((char_u *spat, char_u *mpat, char_u *epat, int dir, char_u *skip, int flags, pos_T *match_pos, linenr_T lnum_stop, long time_limit)); void set_vim_var_nr __ARGS((int idx, long val)); long get_vim_var_nr __ARGS((int idx)); @@ -110,6 +109,8 @@ void ex_echohl __ARGS((exarg_T *eap)); void ex_execute __ARGS((exarg_T *eap)); void ex_function __ARGS((exarg_T *eap)); void free_all_functions __ARGS((void)); +int translated_function_exists __ARGS((char_u *name)); +char_u *get_expanded_name __ARGS((char_u *name, int check)); void func_dump_profile __ARGS((FILE *fd)); char_u *get_user_func_name __ARGS((expand_T *xp, int idx)); void ex_delfunction __ARGS((exarg_T *eap)); diff --git a/src/version.c b/src/version.c index 46b9c54c2..394e6d574 100644 --- a/src/version.c +++ b/src/version.c @@ -729,6 +729,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1159, +/**/ 1158, /**/ 1157, |