From 0a7ff4715cb8ec863ed061443aa77f986c840507 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Fri, 6 Dec 2024 10:07:46 +0100 Subject: main: pretty-print `-p` output by default When outputting non-string expression results while running the cli interpreter using the `-p` flag, pretty-print the resulting JSON data for better readability. Signed-off-by: Jo-Philipp Wich --- main.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/main.c b/main.c index 96f4adb..e7771b7 100644 --- a/main.c +++ b/main.c @@ -145,11 +145,18 @@ compile(uc_vm_t *vm, uc_source_t *src, FILE *precompile, bool strip, char *inter switch (rc) { case STATUS_OK: if (print_result) { - uc_vm_stack_push(vm, res); - uc_vm_stack_push(vm, ucv_string_new("\n")); - uc_stdlib_function("print")(vm, 2); - uc_vm_stack_pop(vm); - uc_vm_stack_pop(vm); + if (ucv_type(res) == UC_STRING) { + fwrite(ucv_string_get(res), ucv_string_length(res), 1, stdout); + } + else { + uc_stringbuf_t *pb = xprintbuf_new(); + + ucv_to_stringbuf_formatted(vm, pb, res, 0, '\t', 1); + fwrite(pb->buf, pb->bpos, 1, stdout); + printbuf_free(pb); + } + + ucv_put(res); } rc = 0; -- cgit v1.2.3