aboutsummaryrefslogtreecommitdiff
path: root/contrib/libucl/src/ucl_emitter.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/libucl/src/ucl_emitter.c')
-rw-r--r--contrib/libucl/src/ucl_emitter.c12
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);