Index: fusl/src/stdlib/fcvt.c |
diff --git a/fusl/src/stdlib/fcvt.c b/fusl/src/stdlib/fcvt.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f90928fe160de88fa783d10bd0f10b44ac833950 |
--- /dev/null |
+++ b/fusl/src/stdlib/fcvt.c |
@@ -0,0 +1,25 @@ |
+#define _GNU_SOURCE |
+#include <stdlib.h> |
+#include <stdio.h> |
+#include <string.h> |
+ |
+char *fcvt(double x, int n, int *dp, int *sign) |
+{ |
+ char tmp[1500]; |
+ int i, lz; |
+ |
+ if (n > 1400U) n = 1400; |
+ sprintf(tmp, "%.*f", n, x); |
+ i = (tmp[0] == '-'); |
+ if (tmp[i] == '0') lz = strspn(tmp+i+2, "0"); |
+ else lz = -(int)strcspn(tmp+i, "."); |
+ |
+ if (n<=lz) { |
+ *sign = i; |
+ *dp = 1; |
+ if (n>14U) n = 14; |
+ return "000000000000000"+14-n; |
+ } |
+ |
+ return ecvt(x, n-lz, dp, sign); |
+} |