Mercurial > gnulib
view m4/c-strtod.m4 @ 40173:b716418da8b9
c-strtod, c-strtold: Use the bug fixes for strtod, strtold.
* lib/stdlib.in.h (GNULIB_defined_strtod_function,
GNULIB_defined_strtold_function): New macros.
* lib/c-strtod.c (HAVE_GOOD_STRTOD_L): New macro.
(STRTOD): Ignore HAVE_C99_STRTOLD.
(c_locale): Don't define it on platforms where strtod_l/strtold_l is
deemed buggy. But do use it on platforms where uselocale exists and is
usable.
(C_STRTOD): Don't use STRTOD_L on platforms where strtod_l/strtold_l is
deemed buggy. On platforms where uselocale exists and is usable, use
uselocale and strtod/strtold.
* m4/c-strtod.m4 (gl_C99_STRTOLD): Remove macro.
(gl_C_STRTOD): Require gt_FUNC_USELOCALE.
(gl_C_STRTOLD): Likewise. Define HAVE_C99_STRTOLD unconditionally.
* modules/c-strtod (Files): Add m4/intl-thread-locale.m4.
(Depends-on): Add strtod.
* modules/c-strtold (Files): Add m4/intl-thread-locale.m4.
(Depends-on): Add strtold.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Fri, 01 Feb 2019 04:34:37 +0100 |
parents | b06060465f09 |
children | dcd889592b62 |
line wrap: on
line source
# c-strtod.m4 serial 17 # Copyright (C) 2004-2006, 2009-2019 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Written by Paul Eggert. dnl Prerequisites of lib/c-strtod.c. AC_DEFUN([gl_C_STRTOD], [ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gt_FUNC_USELOCALE]) AC_CHECK_HEADERS_ONCE([xlocale.h]) dnl We can't use AC_CHECK_FUNC here, because strtod_l() is defined as a dnl static inline function when compiling for Android 7.1 or older. AC_CACHE_CHECK([for strtod_l], [gl_cv_func_strtod_l], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include <stdlib.h> #include <locale.h> #if HAVE_XLOCALE_H # include <xlocale.h> #endif locale_t loc; ]], [[char *end; return strtod_l("0",&end,loc) < 0.0; ]]) ], [gl_cv_func_strtod_l=yes], [gl_cv_func_strtod_l=no]) ]) if test $gl_cv_func_strtod_l = yes; then HAVE_STRTOD_L=1 else HAVE_STRTOD_L=0 fi AC_DEFINE_UNQUOTED([HAVE_STRTOD_L], [$HAVE_STRTOD_L], [Define to 1 if the system has the 'strtod_l' function.]) ]) dnl Prerequisites of lib/c-strtold.c. AC_DEFUN([gl_C_STRTOLD], [ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gt_FUNC_USELOCALE]) AC_DEFINE([HAVE_C99_STRTOLD], [1], [Define to 1 because the gnulib 'strtold' module provides a C99-conforming strtold function.]) AC_CHECK_FUNCS([strtold_l]) ])