aboutsummaryrefslogtreecommitdiff
path: root/compile.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-06-01 11:25:14 -0400
committerBruce Hill <bruce@bruce-hill.com>2024-06-01 11:25:14 -0400
commitb4dc8587946d5300ae983c9c3cfc2d03f76ed746 (patch)
treec5e159fc4fd65fb7f9b62b12379df48a7b2100c8 /compile.c
parent11efaa6f8f45aa4557a3a80dfc32f885ac455908 (diff)
Change how floats are serialized
Diffstat (limited to 'compile.c')
-rw-r--r--compile.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/compile.c b/compile.c
index e7bb14c7..b6e26c84 100644
--- a/compile.c
+++ b/compile.c
@@ -1025,10 +1025,7 @@ CORD compile(env_t *env, ast_t *ast)
}
case Int: return CORD_asprintf("I%ld(%ld)", Match(ast, Int)->bits, Match(ast, Int)->i);
case Num: {
- // HACK: since the cord library doesn't support the '%a' specifier, this workaround
- // is necessary:
- char *buf = asprintfa(Match(ast, Num)->bits == 64 ? "%a" : "%af", Match(ast, Num)->n);
- return CORD_from_char_star(buf);
+ return CORD_asprintf(Match(ast, Num)->bits == 64 ? "%.9g" : "%.9gf", Match(ast, Num)->n);
}
case Length: {
ast_t *expr = Match(ast, Length)->value;