/* $NetBSD: strtold_subr.c,v 1.1 2006/03/15 17:35:18 kleink Exp $ */ | |
/* | |
* Written by Klaus Klein <[email protected]>, November 16, 2005. | |
* Public domain. | |
*/ | |
/* | |
* NOTICE: This is not a standalone file. To use it, #include it in | |
* the format-specific strtold_*.c, like so: | |
* | |
* #define GDTOA_LD_FMT <gdtoa extended-precision format code> | |
* #include "strtold_subr.c" | |
*/ | |
#include <LibConfig.h> | |
#include <sys/EfiCdefs.h> | |
#include "namespace.h" | |
#include <math.h> | |
#include <sys/stdint.h> | |
#include <stdlib.h> | |
#include "gdtoa.h" | |
#ifdef __weak_alias | |
__weak_alias(strtold, _strtold) | |
#endif | |
#ifndef __HAVE_LONG_DOUBLE | |
#error no extended-precision long double type | |
#endif | |
#ifndef GDTOA_LD_FMT | |
#error GDTOA_LD_FMT must be defined by format-specific source file | |
#endif | |
#define STRTOP(x) __CONCAT(strtop, x) | |
long double | |
strtold(const char *nptr, char **endptr) | |
{ | |
long double ld; | |
(void)STRTOP(GDTOA_LD_FMT)(nptr, endptr, &ld); | |
return ld; | |
} |