implement mbtowc directly, not as a wrapper for mbrtowc
[musl] / src / stdlib / fcvt.c
1 #define _GNU_SOURCE
2 #include <stdlib.h>
3 #include <stdio.h>
4 #include <string.h>
5
6 char *fcvt(double x, int n, int *dp, int *sign)
7 {
8         char tmp[1500];
9         int i, lz;
10
11         if (n > 1400U) n = 1400;
12         sprintf(tmp, "%.*f", n, x);
13         i = (tmp[0] == '-');
14         if (tmp[i] == '0') lz = strspn(tmp+i+2, "0");
15         else lz = -(int)strcspn(tmp+i, ".");
16
17         if (n<=lz) {
18                 *sign = i;
19                 *dp = 0;
20                 if (n>14U) n = 14;
21                 return "000000000000000"+14-n;
22         }
23
24         return ecvt(x, n-lz, dp, sign);
25 }