diff options
| author | Zuhaitz <zuhaitz.zechhub@gmail.com> | 2026-01-24 16:16:55 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-24 16:16:55 +0000 |
| commit | ec2e255346eb3b5aba3e4ead18d1d5053995e2ea (patch) | |
| tree | 34bc4de609c1b8379918c8f966d5fc4dffbc5d35 /src/parser/parser_stmt.c | |
| parent | 08558d8cdab7598c4a2e077bd665b49bfee18a79 (diff) | |
| parent | f3d2544b18fe8267edaba97474033782f7da3f40 (diff) | |
Merge pull request #108 from vitalyster/tmpfile
open_memstream -> tmpfile
Diffstat (limited to 'src/parser/parser_stmt.c')
| -rw-r--r-- | src/parser/parser_stmt.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/parser/parser_stmt.c b/src/parser/parser_stmt.c index 325fa1c..2e3d6e2 100644 --- a/src/parser/parser_stmt.c +++ b/src/parser/parser_stmt.c @@ -1413,10 +1413,15 @@ char *process_printf_sugar(ParserContext *ctx, const char *content, int newline, { char *inner_c = NULL; size_t len = 0; - FILE *ms = open_memstream(&inner_c, &len); + FILE *ms = tmpfile(); if (ms) { codegen_expression(ctx, expr_node, ms); + len = ftell(ms); + fseek(ms, 0, SEEK_SET); + inner_c = xmalloc(len + 1); + fread(inner_c, 1, len, ms); + inner_c[len] = 0; fclose(ms); } @@ -1443,10 +1448,15 @@ char *process_printf_sugar(ParserContext *ctx, const char *content, int newline, { char *buf = NULL; size_t len = 0; - FILE *ms = open_memstream(&buf, &len); + FILE *ms = tmpfile(); if (ms) { codegen_expression(ctx, expr_node, ms); + len = ftell(ms); + fseek(ms, 0, SEEK_SET); + buf = xmalloc(len + 1); + fread(buf, 1, len, ms); + buf[len] = 0; fclose(ms); rw_expr = buf; used_codegen = 1; |
