~ chicken-core (chicken-5) 2e4ec6d4d6dfdb6d80760571c8608a6c16f69362
commit 2e4ec6d4d6dfdb6d80760571c8608a6c16f69362
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Thu Jul 11 12:14:50 2013 +0200
Commit: Christian Kellermann <ckeen@pestilenz.org>
CommitDate: Thu Jul 11 12:23:11 2013 +0200
Explicitly add trailing 0 when printing fractions on mingw32
On mingw32 gcvt(3) doesn't add a trailing zero to it's output when the
argument has a zero fractional part. This change adds '\0' explicitly
in that case. Reported by Michele La Monaca, who also tested the fix.
Signed-off-by: Christian Kellermann <ckeen@pestilenz.org>
diff --git a/runtime.c b/runtime.c
index d7d79f2c..33e4d111 100644
--- a/runtime.c
+++ b/runtime.c
@@ -7832,6 +7832,11 @@ void C_ccall C_number_to_string(C_word c, C_word closure, C_word k, C_word num,
}
else if(buffer[ 1 ] != 'i') C_strcat(buffer, C_text(".0")); /* negative infinity? */
}
+#ifdef __MINGW32__
+ /* On mingw32, gcvt(3) does not add a trailing '\0' */
+ else if(buffer[ C_strlen(buffer) - 1 ] == '.')
+ C_strcat(buffer, C_text("0"));
+#endif
p = buffer;
}
Trap