diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2024-09-02 19:23:35 -0400 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2024-09-02 19:23:35 -0400 |
| commit | a4454df4b93e2e2d071fe9e364318e3615fd7a98 (patch) | |
| tree | d20fb9ce312bf278bc5f043322e0a52b5da006a6 | |
| parent | b0a8404bd7068c02f274978263fec00b8538d814 (diff) | |
Bugfix int parsing
| -rw-r--r-- | builtins/text.c | 8 | ||||
| -rw-r--r-- | 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 |
