diff options
| author | LLLL Colonq <llll@colonq> | 2026-09-29 17:34:12 -0400 |
|---|---|---|
| committer | LLLL Colonq <llll@colonq> | 2026-09-29 17:34:12 -0400 |
| commit | 84f13229756b5a9253d7013ede8ed3a602ee5376 (patch) | |
| tree | 618c88ed27e9e528a6eeb52935baa1d55be0ee5d /pit/src/runtime/dump.c | |
| parent | 17df4b1ff7f4cbcf3b3218fea68f65d3cb60c984 (diff) | |
pit: Better double support
Diffstat (limited to 'pit/src/runtime/dump.c')
| -rw-r--r-- | pit/src/runtime/dump.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/pit/src/runtime/dump.c b/pit/src/runtime/dump.c index 4d67bb6..5c113fa 100644 --- a/pit/src/runtime/dump.c +++ b/pit/src/runtime/dump.c @@ -1,6 +1,8 @@ #include <lcq/pit/utils.h> #include <lcq/pit/runtime/dump.h> +#include <stdio.h> + pit_dump_condition pit_dump_with_callback( pit_runtime *rt, pit_value top, bool readable, pit_dump_callback write, void *data @@ -111,7 +113,10 @@ pit_dump_condition pit_dump_with_callback( if (readable) { buf[i++] = '"'; } i64 maxlen = len - i; for (i64 j = 0; i < maxlen && j < h->in.bytes.len;) { - if (buf[i - 1] != '\\' && (h->in.bytes.data[j] == '\\' || h->in.bytes.data[j] == '"')) { + bool needs_backslash = + (i == 0 || buf[i - 1] != '\\') + && (h->in.bytes.data[j] == '\\' || h->in.bytes.data[j] == '"'); + if (needs_backslash) { buf[i++] = '\\'; } else { |
