diff options
| author | Vitaly Takmazov <vitalyster@gmail.com> | 2026-01-24 05:53:02 +0300 |
|---|---|---|
| committer | Vitaly Takmazov <vitalyster@gmail.com> | 2026-01-24 06:09:15 +0300 |
| commit | f3d2544b18fe8267edaba97474033782f7da3f40 (patch) | |
| tree | 24f19dc3864cebfe8ff62c3e1fad3d6afe0be3ef /src/parser/parser_stmt.c | |
| parent | f38a4868b6585a28e4dee23fd595cdc192dbde00 (diff) | |
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 73ae249..a4c24c9 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; |
