From 19256bef9d264f96187261929992b96e61fa43fd Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Mon, 12 Mar 2018 13:33:03 +0800 Subject: [PATCH] hb-private.hh: Add fallback implementation for round() For pre-C99 compilers that do not support round(), we need to have a simplistic implementation for it, when it is not detected during build configuration, either via CMake or autotools, by using floor() and ceil(), which are provided in the pre-C99 compilers. Please see discussion at commit 86a0ac2 for more details for re-adding this patch. --- src/hb-private.hh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/hb-private.hh b/src/hb-private.hh index daa496e98..62a103cf7 100644 --- a/src/hb-private.hh +++ b/src/hb-private.hh @@ -1070,4 +1070,17 @@ struct hb_string_t }; +/* fallback for round() */ +#if !defined (HAVE_ROUND) && !defined (HAVE_DECL_ROUND) +static inline double +round (double x) +{ + if (x >= 0) + return floor (x + 0.5); + else + return ceil (x - 0.5); +} +#endif + + #endif /* HB_PRIVATE_HH */