diff options
author | Chun-wei Fan <fanchunwei@src.gnome.org> | 2020-12-23 11:28:10 +0800 |
---|---|---|
committer | Chun-wei Fan <fanchunwei@src.gnome.org> | 2020-12-23 12:52:19 +0800 |
commit | 91343251b98f752e1b4e6cef1e4305e085cbc289 (patch) | |
tree | 33bc5ded3071aee4d6d3c28e9d46a1f65f4c6e79 | |
parent | ecd6b0b9a494a33a402cdddf16448727172f7f71 (diff) | |
download | gtk+-324.c89.tar.gz |
gtk/fallback-c89.c: Add fallback for fmin()324.c89
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.
-rw-r--r-- | config.h.meson | 3 | ||||
-rw-r--r-- | config.h.win32.in | 5 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | gtk/fallback-c89.c | 8 | ||||
-rw-r--r-- | gtk/gtkscrolledwindow.c | 2 | ||||
-rw-r--r-- | 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 |