xref: /freebsd/lib/libc/stdlib/strfrom.h (revision f68d7bfc1479042184e09431bd55771c50c47f68)
1*f68d7bfcSFaraz Vahedi /*
2*f68d7bfcSFaraz Vahedi  * Copyright (c) 2026 Faraz Vahedi <kfv@kfv.io>
3*f68d7bfcSFaraz Vahedi  *
4*f68d7bfcSFaraz Vahedi  * SPDX-License-Identifier: BSD-2-Clause
5*f68d7bfcSFaraz Vahedi  */
6*f68d7bfcSFaraz Vahedi 
7*f68d7bfcSFaraz Vahedi /*
8*f68d7bfcSFaraz Vahedi  * Internal declarations for strfrom* numeric conversion (C23 §7.24.1.3).
9*f68d7bfcSFaraz Vahedi  *
10*f68d7bfcSFaraz Vahedi  * Note: gdtoa dtoa() modes used:
11*f68d7bfcSFaraz Vahedi  *   2 – ndigits significant digits      (%e, %g)
12*f68d7bfcSFaraz Vahedi  *   3 – ndigits digits after '.'        (%f)
13*f68d7bfcSFaraz Vahedi  */
14*f68d7bfcSFaraz Vahedi 
15*f68d7bfcSFaraz Vahedi #ifndef STRFROM_H
16*f68d7bfcSFaraz Vahedi #define	STRFROM_H
17*f68d7bfcSFaraz Vahedi 
18*f68d7bfcSFaraz Vahedi #include <limits.h>
19*f68d7bfcSFaraz Vahedi #include <stddef.h>
20*f68d7bfcSFaraz Vahedi 
21*f68d7bfcSFaraz Vahedi #define	dtoa		__dtoa
22*f68d7bfcSFaraz Vahedi #define	freedtoa	__freedtoa
23*f68d7bfcSFaraz Vahedi 
24*f68d7bfcSFaraz Vahedi #include "../stdio/floatio.h"
25*f68d7bfcSFaraz Vahedi #include "gdtoa.h"
26*f68d7bfcSFaraz Vahedi 
27*f68d7bfcSFaraz Vahedi char	__sf_parse_fmt(const char *, int *);
28*f68d7bfcSFaraz Vahedi int	__sf_edoofus(char *, size_t);
29*f68d7bfcSFaraz Vahedi const char *__sf_xdigits(char);
30*f68d7bfcSFaraz Vahedi void	__sf_decimal_mode(char, int, int *, int *);
31*f68d7bfcSFaraz Vahedi int	__sf_render_hex(char *, size_t, char, int, char *, char *, int, int);
32*f68d7bfcSFaraz Vahedi int	__sf_render_decimal(char *, size_t, char, char, int, char *, char *,
33*f68d7bfcSFaraz Vahedi 	    int, int, int);
34*f68d7bfcSFaraz Vahedi 
35*f68d7bfcSFaraz Vahedi #endif /* STRFROM_H */
36