strtof_l.c 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /* Convert string representing a number to float value, using given locale.
  2. Copyright (C) 1997-2019 Free Software Foundation, Inc.
  3. This file is part of the GNU C Library.
  4. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
  5. The GNU C Library is free software; you can redistribute it and/or
  6. modify it under the terms of the GNU Lesser General Public
  7. License as published by the Free Software Foundation; either
  8. version 2.1 of the License, or (at your option) any later version.
  9. The GNU C Library is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. Lesser General Public License for more details.
  13. You should have received a copy of the GNU Lesser General Public
  14. License along with the GNU C Library; if not, see
  15. <http://www.gnu.org/licenses/>. */
  16. #include <bits/floatn.h>
  17. #if __HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32
  18. # define strtof32_l __hide_strtof32_l
  19. # define wcstof32_l __hide_wcstof32_l
  20. #endif
  21. #include <locale.h>
  22. extern float ____strtof_l_internal (const char *, char **, int, locale_t);
  23. #define FLOAT float
  24. #define FLT FLT
  25. #ifdef USE_WIDE_CHAR
  26. # define STRTOF wcstof_l
  27. # define __STRTOF __wcstof_l
  28. # define STRTOF_NAN __wcstof_nan
  29. #else
  30. # define STRTOF strtof_l
  31. # define __STRTOF __strtof_l
  32. # define STRTOF_NAN __strtof_nan
  33. #endif
  34. #define MPN2FLOAT __mpn_construct_float
  35. #define FLOAT_HUGE_VAL HUGE_VALF
  36. #include "strtod_l.c"
  37. #if __HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32
  38. # undef strtof32_l
  39. # undef wcstof32_l
  40. # ifdef USE_WIDE_CHAR
  41. weak_alias (wcstof_l, wcstof32_l)
  42. # else
  43. weak_alias (strtof_l, strtof32_l)
  44. # endif
  45. #endif