diff --git a/src/post_modules/JSON/json.cmod b/src/post_modules/JSON/json.cmod index 5aed841270ed4eaaca15b56039af9ef4d742946e..c67cfe1ff7b9b445423effa5e5b3705d636bd454 100644 --- a/src/post_modules/JSON/json.cmod +++ b/src/post_modules/JSON/json.cmod @@ -451,13 +451,14 @@ static void json_encode_recur (struct encode_context *ctx, struct svalue *val) *! @[escape_string] */ PIKEFUN string encode (int|float|string|array|mapping|object val, - void|int flags, void|function|object|program|string callback) + void|int flags, void|function|object|program|string callback, + void|int base_indent ) optflags OPT_TRY_OPTIMIZE; { struct encode_context ctx; ONERROR uwp; ctx.flags = (flags ? flags->u.integer : 0); - ctx.indent = (ctx.flags & HUMAN_READABLE ? 0 : -1); + ctx.indent = (ctx.flags & HUMAN_READABLE ? base_indent ? base_indent->u.integer : 0 : -1); ctx.callback = callback; init_string_builder (&ctx.buf, 0); SET_ONERROR (uwp, free_string_builder, &ctx.buf);