diff --git a/src/lib/eina/eina_util.c b/src/lib/eina/eina_util.c index 62e1a79b42..a35888491d 100644 --- a/src/lib/eina/eina_util.c +++ b/src/lib/eina/eina_util.c @@ -100,3 +100,35 @@ eina_environment_tmp_get(void) return tmp; #endif } + +#if defined(_MSC_VER) +#elif defined(__clang__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wfloat-equal" +#elif defined(__GNUC__) +# if ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406 +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wfloat-equal" +# endif +#endif + +EAPI Eina_Bool +eina_dbleq(double a, double b) +{ + return a == b; +} + +EAPI Eina_Bool +eina_flteq(float a, float b) +{ + return a == b; +} + +#if defined(_MSC_VER) +#elif defined(__clang__) +# pragma clang diagnostic pop +#elif defined(__GNUC__) +# if ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406 +# pragma GCC diagnostic pop +# endif +#endif diff --git a/src/lib/eina/eina_util.h b/src/lib/eina/eina_util.h index 66e0d17f6d..3796dcb392 100644 --- a/src/lib/eina/eina_util.h +++ b/src/lib/eina/eina_util.h @@ -49,6 +49,26 @@ EAPI const char *eina_environment_home_get(void); */ EAPI const char *eina_environment_tmp_get(void); +/** + * @brief Warningless comparison of doubles using == + * @param a First member to compare + * @param b Second member to compare + * + * @return @c true if two doubles match + * @since 1.19 + */ +EAPI Eina_Bool eina_dbleq(double a, double b); + +/** + * @brief Warningless comparison of floats using == + * @param a First member to compare + * @param b Second member to compare + * + * @return @c true if two floats match + * @since 1.19 + */ +EAPI Eina_Bool eina_flteq(float a, float b); + /** * @brief Safe comparison of float * @param a First member to compar