diff options
Diffstat (limited to 'contrib/libucl/src/ucl_emitter.c')
-rw-r--r-- | contrib/libucl/src/ucl_emitter.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/contrib/libucl/src/ucl_emitter.c b/contrib/libucl/src/ucl_emitter.c index a15cd08cfb98..4f4465dfbf4a 100644 --- a/contrib/libucl/src/ucl_emitter.c +++ b/contrib/libucl/src/ucl_emitter.c @@ -424,8 +424,16 @@ ucl_emitter_common_elt (struct ucl_emitter_context *ctx, break; case UCL_STRING: ucl_emitter_print_key (print_key, ctx, obj, compact); - if (ctx->id == UCL_EMIT_CONFIG && ucl_maybe_long_string (obj)) { - ucl_elt_string_write_multiline (obj->value.sv, obj->len, ctx); + if (ctx->id == UCL_EMIT_CONFIG) { + if (ucl_maybe_long_string (obj)) { + ucl_elt_string_write_multiline (obj->value.sv, obj->len, ctx); + } else { + if (obj->flags & UCL_OBJECT_SQUOTED) { + ucl_elt_string_write_squoted (obj->value.sv, obj->len, ctx); + } else { + ucl_elt_string_write_json (obj->value.sv, obj->len, ctx); + } + } } else { ucl_elt_string_write_json (obj->value.sv, obj->len, ctx); |