From a4454df4b93e2e2d071fe9e364318e3615fd7a98 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Mon, 2 Sep 2024 19:23:35 -0400 Subject: Bugfix int parsing --- builtins/text.c | 8 +++++++- test/extern.tm | 6 +++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/builtins/text.c b/builtins/text.c index 800c5558..32e9609b 100644 --- a/builtins/text.c +++ b/builtins/text.c @@ -442,10 +442,16 @@ static void u8_buf_append(Text_t text, char **buf, size_t *capacity, int64_t *i) public const char *Text$as_c_string(Text_t text) { - size_t capacity = text.length; + size_t capacity = text.length + 1; char *buf = GC_MALLOC_ATOMIC(capacity); int64_t i = 0; u8_buf_append(text, &buf, &capacity, &i); + + if (i + 1 > (int64_t)capacity) { + capacity = i + 1; + buf = GC_REALLOC(buf, capacity); + } + buf[i] = '\0'; return buf; } diff --git a/test/extern.tm b/test/extern.tm index da3b1820..4823b21f 100644 --- a/test/extern.tm +++ b/test/extern.tm @@ -1,5 +1,5 @@ -extern CORD_cat:func(a:Text, b:Text)->Text +extern sqrt:func(n:Num)->Num func main(): - >> CORD_cat("hello ", "world") - = "hello world" + >> sqrt(4) + = 2 -- cgit v1.2.3