discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=1b4c26be8e9630ae0c367b914f893161c968799a

commit 1b4c26be8e9630ae0c367b914f893161c968799a
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Fri Jan 6 12:57:46 2017 -0500

    eina: add functions for warningless exact comparisons of floats
    
    in some cases a user does want to check exact values, so these functions
    should be used to indicate this intent
    
    needs windows support
    
    @feature
---
 src/lib/eina/eina_util.c | 32 ++++++++++++++++++++++++++++++++
 src/lib/eina/eina_util.h | 20 ++++++++++++++++++++
 2 files changed, 52 insertions(+)

diff --git a/src/lib/eina/eina_util.c b/src/lib/eina/eina_util.c
index 62e1a79..a358884 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 66e0d17..3796dcb 100644
--- a/src/lib/eina/eina_util.h
+++ b/src/lib/eina/eina_util.h
@@ -50,6 +50,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
  * @param b Second member to compar

-- 


Reply via email to