[gtk/324.c89] gtk/fallback-c89.c: Add fallback for fmin()
- From: Chun-wei Fan <fanchunwei src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/324.c89] gtk/fallback-c89.c: Add fallback for fmin()
- Date: Wed, 23 Dec 2020 04:54:09 +0000 (UTC)
commit 91343251b98f752e1b4e6cef1e4305e085cbc289
Author: Chun-wei Fan <fanchunwei src gnome org>
Date: Wed Dec 23 11:28:10 2020 +0800
gtk/fallback-c89.c: Add fallback for fmin()
fmin() is a function that is introduced with C99/C++11, so check for the
presence of it and provide a simple implementation for it if it does not
exist.
Also update the config.h.win32.in template accordingly, since this
function is provided on Visual Studio 2013 or later.
config.h.meson | 3 +++
config.h.win32.in | 5 +++++
configure.ac | 2 +-
gtk/fallback-c89.c | 8 ++++++++
gtk/gtkscrolledwindow.c | 2 +-
meson.build | 1 +
6 files changed, 19 insertions(+), 2 deletions(-)
---
diff --git a/config.h.meson b/config.h.meson
index 2af55473fc..eb347ae538 100644
--- a/config.h.meson
+++ b/config.h.meson
@@ -44,6 +44,9 @@
/* Define to 1 if you have the `flockfile' function. */
#mesondefine HAVE_FLOCKFILE
+/* Define to 1 if you have the `fmin' function. */
+#mesondefine HAVE_FMIN
+
/* Define to 1 if you have the <ftw.h> header file. */
#mesondefine HAVE_FTW_H
diff --git a/config.h.win32.in b/config.h.win32.in
index 62fe46149c..d0546db297 100644
--- a/config.h.win32.in
+++ b/config.h.win32.in
@@ -52,6 +52,11 @@
/* Define to 1 if you have the `flockfile' function. */
#undef HAVE_FLOCKFILE
+/* Define to 1 if you have the `fmin' function. */
+#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
+# define HAVE_FMIN 1
+#endif
+
/* Define to 1 if you have the <ftw.h> header file. */
/* #undef HAVE_FTW_H */
diff --git a/configure.ac b/configure.ac
index 51467bb6cc..acafa2f603 100644
--- a/configure.ac
+++ b/configure.ac
@@ -843,7 +843,7 @@ AC_TYPE_UID_T
# Check for round(), rint(), isnan() and isinf()
# Check for log2(), exp2(), nearbyint() and trunc()
AC_CHECK_LIB(m,round,,)
-AC_CHECK_FUNCS(round rint nearbyint sincos exp2 log2 trunc)
+AC_CHECK_FUNCS(round rint nearbyint sincos exp2 log2 trunc fmin)
AC_CHECK_DECLS([isnan, isinf], [], [], [[#include <math.h>]])
AC_MSG_CHECKING(whether to build dynamic modules)
diff --git a/gtk/fallback-c89.c b/gtk/fallback-c89.c
index 737983c049..1bfa3fb3b3 100644
--- a/gtk/fallback-c89.c
+++ b/gtk/fallback-c89.c
@@ -126,3 +126,11 @@ isnan (double x)
return _isnan (x);
}
#endif
+
+#ifndef HAVE_FMIN
+static inline double
+fmin (double x, double y)
+{
+ return x < y ? x : y;
+}
+#endif
diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c
index 408c09265d..bea7339f39 100644
--- a/gtk/gtkscrolledwindow.c
+++ b/gtk/gtkscrolledwindow.c
@@ -48,7 +48,7 @@
#include "gtkprogresstrackerprivate.h"
#include "gtksettingsprivate.h"
-#include <math.h>
+#include "fallback-c89.c"
/**
* SECTION:gtkscrolledwindow
diff --git a/meson.build b/meson.build
index b2eaa33a88..405c5a511c 100644
--- a/meson.build
+++ b/meson.build
@@ -252,6 +252,7 @@ check_functions = [
'sincos',
'trunc',
'localtime_r',
+ 'fmin',
]
foreach func : check_functions
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]