aboutsummaryrefslogtreecommitdiff
path: root/src/stdlib/enums.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2025-04-27 16:49:38 -0400
committerBruce Hill <bruce@bruce-hill.com>2025-04-27 16:49:38 -0400
commitbaf990e65c62f42e45fe25ac385db9536d3f1788 (patch)
tree7b89cecde1d6cd3b600b9295e0ad22a702cd1065 /src/stdlib/enums.c
parent1a8a8bc3e2ebd9c282db8131902f9bb5de8c03cb (diff)
Update stdlib to use `print` instead of `printf` in all cases. This
means bringing in fpconv to do float-to-string conversion and a few updates to integer and number methods for string formatting.
Diffstat (limited to 'src/stdlib/enums.c')
-rw-r--r--src/stdlib/enums.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/stdlib/enums.c b/src/stdlib/enums.c
index 0c5cf196..404e3c50 100644
--- a/src/stdlib/enums.c
+++ b/src/stdlib/enums.c
@@ -74,8 +74,10 @@ public Text_t Enum$as_text(const void *obj, bool colorize, const TypeInfo_t *typ
int32_t tag = *(int32_t*)obj;
NamedType_t value = type->EnumInfo.tags[tag-1];
- if (!value.type || value.type->size == 0)
- return Text$format(colorize ? "\x1b[1m%s\x1b[m" : "%s", value.name);
+ if (!value.type || value.type->size == 0) {
+ Text_t text = Text$from_str(value.name);
+ return colorize ? Texts(Text("\x1b[1m"), text, Text("\x1b[m")) : text;
+ }
ptrdiff_t byte_offset = sizeof(int32_t);
if (value.type->align && byte_offset % value.type->align > 0)