From fcbf63e62c627deae76c1b8cb8c0876c536ed811 Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Mon, 16 Mar 2020 18:49:26 +0900 Subject: Fresh start --- jni/ruby/missing/isnan.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 jni/ruby/missing/isnan.c (limited to 'jni/ruby/missing/isnan.c') diff --git a/jni/ruby/missing/isnan.c b/jni/ruby/missing/isnan.c new file mode 100644 index 0000000..ed10bf5 --- /dev/null +++ b/jni/ruby/missing/isnan.c @@ -0,0 +1,32 @@ +/* public domain rewrite of isnan(3) */ + +#include "ruby/missing.h" + +/* + * isnan() may be a macro, a function or both. + * (The C99 standard defines that isnan() is a macro, though.) + * http://www.gnu.org/software/automake/manual/autoconf/Function-Portability.html + * + * macro only: uClibc + * both: GNU libc + * + * This file is compile if no isnan() function is available. + * (autoconf AC_REPLACE_FUNCS detects only the function.) + * The macro is detected by following #ifndef. + */ + +#ifndef isnan +static int double_ne(double n1, double n2); + +int +isnan(double n) +{ + return double_ne(n, n); +} + +static int +double_ne(double n1, double n2) +{ + return n1 != n2; +} +#endif -- cgit v1.2.3