|
Message-Id: <e27bd34041b55e888d091bdeb65ab95c31f0b0cb.1684932892.git.Jens.Gustedt@inria.fr> Date: Wed, 24 May 2023 21:38:53 +0200 From: Jens Gustedt <Jens.Gustedt@...ia.fr> To: musl@...ts.openwall.com Subject: [C23 new stdlib 3/4] C23: implement the new strfrom[dfl] functions These names had been reserved in C17, so it is not necessary to hide these function in conditionals or to make the symbols weak. --- include/stdlib.h | 4 ++++ src/stdlib/strfromd.c | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 src/stdlib/strfromd.c diff --git a/include/stdlib.h b/include/stdlib.h index 68993c04..43173e95 100644 --- a/include/stdlib.h +++ b/include/stdlib.h @@ -29,6 +29,10 @@ float strtof (const char *__restrict, char **__restrict); double strtod (const char *__restrict, char **__restrict); long double strtold (const char *__restrict, char **__restrict); +int strfromd(char *restrict, size_t, const char *restrict, double); +int strfromf(char *restrict, size_t, const char *restrict, float); +int strfroml(char *restrict, size_t, const char *restrict, long double); + long strtol (const char *__restrict, char **__restrict, int); unsigned long strtoul (const char *__restrict, char **__restrict, int); long long strtoll (const char *__restrict, char **__restrict, int); diff --git a/src/stdlib/strfromd.c b/src/stdlib/strfromd.c new file mode 100644 index 00000000..c04a1d82 --- /dev/null +++ b/src/stdlib/strfromd.c @@ -0,0 +1,21 @@ +#include <stdlib.h> +#include <stdio.h> +#include <string.h> + +int strfromd(char *restrict s, size_t n, const char *restrict format, double fp) { + return snprintf(s, n, format, fp); +} + +int strfromf(char *restrict s, size_t n, const char *restrict format, float fp) { + return snprintf(s, n, format, fp); +} + +int strfroml(char *restrict s, size_t n, const char *restrict format, long double fp) { + size_t len = strlen(format); + char ff[len+2]; + memcpy(ff, format, len-1); + ff[len-1] = 'L'; + ff[len] = format[len-1]; + ff[len+1] = 0; + return snprintf(s, n, ff, fp); +} -- 2.34.1
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.