 b6cbf7203b
			
		
	
	
		b6cbf7203b
		
	
	
	
	
		
			
			This patch imports the unmodified current version of NetBSD libc. The NetBSD includes are in /nbsd_include, while the libc code itself is split between lib/nbsd_libc and common/lib/libc.
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* $NetBSD: strtold_subr.c,v 1.1 2006/03/15 17:35:18 kleink Exp $ */
 | |
| 
 | |
| /*
 | |
|  * Written by Klaus Klein <kleink@NetBSD.org>, 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 <sys/cdefs.h>
 | |
| #if defined(LIBC_SCCS) && !defined(lint)
 | |
| __RCSID("$NetBSD: strtold_subr.c,v 1.1 2006/03/15 17:35:18 kleink Exp $");
 | |
| #endif /* LIBC_SCCS and not lint */
 | |
| 
 | |
| #include "namespace.h"
 | |
| #include <math.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;
 | |
| }
 |