Lines Matching +full:func +full:-

86 #define UCL_EMIT_IDENT_TOP_OBJ(ctx, obj) ((ctx)->top != (obj) || \
87 ((ctx)->id == UCL_EMIT_JSON_COMPACT || (ctx)->id == UCL_EMIT_JSON))
96 ucl_add_tabs (const struct ucl_emitter_functions *func, unsigned int tabs, in ucl_add_tabs() argument
100 func->ucl_emitter_append_character (' ', tabs * 4, func->ud); in ucl_add_tabs()
113 const struct ucl_emitter_functions *func = ctx->func; in ucl_emitter_print_key() local
119 if (ctx->id == UCL_EMIT_CONFIG) { in ucl_emitter_print_key()
120 if (obj->flags & UCL_OBJECT_NEED_KEY_ESCAPE) { in ucl_emitter_print_key()
121 ucl_elt_string_write_json (obj->key, obj->keylen, ctx); in ucl_emitter_print_key()
124 func->ucl_emitter_append_len (obj->key, obj->keylen, func->ud); in ucl_emitter_print_key()
127 if (obj->type != UCL_OBJECT && obj->type != UCL_ARRAY) { in ucl_emitter_print_key()
128 func->ucl_emitter_append_len (" = ", 3, func->ud); in ucl_emitter_print_key()
131 func->ucl_emitter_append_character (' ', 1, func->ud); in ucl_emitter_print_key()
134 else if (ctx->id == UCL_EMIT_YAML) { in ucl_emitter_print_key()
135 if (obj->keylen > 0 && (obj->flags & UCL_OBJECT_NEED_KEY_ESCAPE)) { in ucl_emitter_print_key()
136 ucl_elt_string_write_json (obj->key, obj->keylen, ctx); in ucl_emitter_print_key()
138 else if (obj->keylen > 0) { in ucl_emitter_print_key()
139 func->ucl_emitter_append_len (obj->key, obj->keylen, func->ud); in ucl_emitter_print_key()
142 func->ucl_emitter_append_len ("null", 4, func->ud); in ucl_emitter_print_key()
145 func->ucl_emitter_append_len (": ", 2, func->ud); in ucl_emitter_print_key()
148 if (obj->keylen > 0) { in ucl_emitter_print_key()
149 ucl_elt_string_write_json (obj->key, obj->keylen, ctx); in ucl_emitter_print_key()
152 func->ucl_emitter_append_len ("null", 4, func->ud); in ucl_emitter_print_key()
156 func->ucl_emitter_append_character (':', 1, func->ud); in ucl_emitter_print_key()
159 func->ucl_emitter_append_len (": ", 2, func->ud); in ucl_emitter_print_key()
168 const struct ucl_emitter_functions *func = ctx->func; in ucl_emitter_finish_object() local
170 if (ctx->id == UCL_EMIT_CONFIG && obj != ctx->top) { in ucl_emitter_finish_object()
171 if (obj->type != UCL_OBJECT && obj->type != UCL_ARRAY) { in ucl_emitter_finish_object()
174 func->ucl_emitter_append_len (";\n", 2, func->ud); in ucl_emitter_finish_object()
178 func->ucl_emitter_append_len (",\n", 2, func->ud); in ucl_emitter_finish_object()
182 func->ucl_emitter_append_character ('\n', 1, func->ud); in ucl_emitter_finish_object()
196 const struct ucl_emitter_functions *func = ctx->func; in ucl_emitter_common_end_object() local
199 ctx->indent --; in ucl_emitter_common_end_object()
201 func->ucl_emitter_append_character ('}', 1, func->ud); in ucl_emitter_common_end_object()
204 if (ctx->id != UCL_EMIT_CONFIG) { in ucl_emitter_common_end_object()
206 func->ucl_emitter_append_character ('\n', 1, func->ud); in ucl_emitter_common_end_object()
208 ucl_add_tabs (func, ctx->indent, compact); in ucl_emitter_common_end_object()
209 func->ucl_emitter_append_character ('}', 1, func->ud); in ucl_emitter_common_end_object()
225 const struct ucl_emitter_functions *func = ctx->func; in ucl_emitter_common_end_array() local
227 ctx->indent --; in ucl_emitter_common_end_array()
229 func->ucl_emitter_append_character (']', 1, func->ud); in ucl_emitter_common_end_array()
232 if (ctx->id != UCL_EMIT_CONFIG) { in ucl_emitter_common_end_array()
234 func->ucl_emitter_append_character ('\n', 1, func->ud); in ucl_emitter_common_end_array()
236 ucl_add_tabs (func, ctx->indent, compact); in ucl_emitter_common_end_array()
237 func->ucl_emitter_append_character (']', 1, func->ud); in ucl_emitter_common_end_array()
255 const struct ucl_emitter_functions *func = ctx->func; in ucl_emitter_common_start_array() local
258 if (ctx->id != UCL_EMIT_CONFIG && !first) { in ucl_emitter_common_start_array()
260 func->ucl_emitter_append_character (',', 1, func->ud); in ucl_emitter_common_start_array()
263 if (ctx->id == UCL_EMIT_YAML && ctx->indent == 0) { in ucl_emitter_common_start_array()
264 func->ucl_emitter_append_len ("\n", 1, func->ud); in ucl_emitter_common_start_array()
266 func->ucl_emitter_append_len (",\n", 2, func->ud); in ucl_emitter_common_start_array()
269 ucl_add_tabs (func, ctx->indent, compact); in ucl_emitter_common_start_array()
275 func->ucl_emitter_append_character ('[', 1, func->ud); in ucl_emitter_common_start_array()
278 func->ucl_emitter_append_len ("[\n", 2, func->ud); in ucl_emitter_common_start_array()
281 ctx->indent ++; in ucl_emitter_common_start_array()
283 if (obj->type == UCL_ARRAY) { in ucl_emitter_common_start_array()
296 cur = cur->next; in ucl_emitter_common_start_array()
315 const struct ucl_emitter_functions *func = ctx->func; in ucl_emitter_common_start_object() local
318 if (ctx->id != UCL_EMIT_CONFIG && !first) { in ucl_emitter_common_start_object()
320 func->ucl_emitter_append_character (',', 1, func->ud); in ucl_emitter_common_start_object()
323 if (ctx->id == UCL_EMIT_YAML && ctx->indent == 0) { in ucl_emitter_common_start_object()
324 func->ucl_emitter_append_len ("\n", 1, func->ud); in ucl_emitter_common_start_object()
326 func->ucl_emitter_append_len (",\n", 2, func->ud); in ucl_emitter_common_start_object()
329 ucl_add_tabs (func, ctx->indent, compact); in ucl_emitter_common_start_object()
339 func->ucl_emitter_append_character ('{', 1, func->ud); in ucl_emitter_common_start_object()
342 func->ucl_emitter_append_len ("{\n", 2, func->ud); in ucl_emitter_common_start_object()
344 ctx->indent ++; in ucl_emitter_common_start_object()
347 while ((cur = ucl_hash_iterate (obj->value.ov, &it))) { in ucl_emitter_common_start_object()
349 if (ctx->id == UCL_EMIT_CONFIG) { in ucl_emitter_common_start_object()
356 if (cur->next != NULL) { in ucl_emitter_common_start_object()
359 func->ucl_emitter_append_character (',', 1, func->ud); in ucl_emitter_common_start_object()
362 func->ucl_emitter_append_len (",\n", 2, func->ud); in ucl_emitter_common_start_object()
365 ucl_add_tabs (func, ctx->indent, compact); in ucl_emitter_common_start_object()
390 const struct ucl_emitter_functions *func = ctx->func; in ucl_emitter_common_elt() local
396 if (ctx->id != UCL_EMIT_CONFIG && !first) { in ucl_emitter_common_elt()
398 func->ucl_emitter_append_character (',', 1, func->ud); in ucl_emitter_common_elt()
401 if (ctx->id == UCL_EMIT_YAML && ctx->indent == 0) { in ucl_emitter_common_elt()
402 func->ucl_emitter_append_len ("\n", 1, func->ud); in ucl_emitter_common_elt()
404 func->ucl_emitter_append_len (",\n", 2, func->ud); in ucl_emitter_common_elt()
409 ucl_add_tabs (func, ctx->indent, compact); in ucl_emitter_common_elt()
411 if (ctx->comments && ctx->id == UCL_EMIT_CONFIG) { in ucl_emitter_common_elt()
412 comment = ucl_object_lookup_len (ctx->comments, (const char *)&obj, in ucl_emitter_common_elt()
416 if (!(comment->flags & UCL_OBJECT_INHERITED)) { in ucl_emitter_common_elt()
418 func->ucl_emitter_append_len (cur_comment->value.sv, in ucl_emitter_common_elt()
419 cur_comment->len, in ucl_emitter_common_elt()
420 func->ud); in ucl_emitter_common_elt()
421 func->ucl_emitter_append_character ('\n', 1, func->ud); in ucl_emitter_common_elt()
422 ucl_add_tabs (func, ctx->indent, compact); in ucl_emitter_common_elt()
430 switch (obj->type) { in ucl_emitter_common_elt()
433 func->ucl_emitter_append_int (ucl_object_toint (obj), func->ud); in ucl_emitter_common_elt()
439 func->ucl_emitter_append_double (ucl_object_todouble (obj), func->ud); in ucl_emitter_common_elt()
446 func->ucl_emitter_append_len ("true", 4, func->ud); in ucl_emitter_common_elt()
449 func->ucl_emitter_append_len ("false", 5, func->ud); in ucl_emitter_common_elt()
455 if (ctx->id == UCL_EMIT_CONFIG) { in ucl_emitter_common_elt()
457 ucl_elt_string_write_multiline (obj->value.sv, obj->len, ctx); in ucl_emitter_common_elt()
459 if (obj->flags & UCL_OBJECT_SQUOTED) { in ucl_emitter_common_elt()
460 ucl_elt_string_write_squoted (obj->value.sv, obj->len, ctx); in ucl_emitter_common_elt()
462 ucl_elt_string_write_json (obj->value.sv, obj->len, ctx); in ucl_emitter_common_elt()
467 ucl_elt_string_write_json (obj->value.sv, obj->len, ctx); in ucl_emitter_common_elt()
473 func->ucl_emitter_append_len ("null", 4, func->ud); in ucl_emitter_common_elt()
487 if (ud->emitter) { in ucl_emitter_common_elt()
488 ud_out = ud->emitter (obj->value.ud); in ucl_emitter_common_elt()
500 func->ucl_emitter_append_len (cur_comment->value.sv, in ucl_emitter_common_elt()
501 cur_comment->len, in ucl_emitter_common_elt()
502 func->ud); in ucl_emitter_common_elt()
503 func->ucl_emitter_append_character ('\n', 1, func->ud); in ucl_emitter_common_elt()
505 if (cur_comment->next) { in ucl_emitter_common_elt()
506 ucl_add_tabs (func, ctx->indent, compact); in ucl_emitter_common_elt()
551 switch (obj->type) { in UCL_EMIT_TYPE_IMPL()
571 if (obj->flags & UCL_OBJECT_BINARY) { in UCL_EMIT_TYPE_IMPL()
572 ucl_emitter_print_binary_string_msgpack (ctx, obj->value.sv, in UCL_EMIT_TYPE_IMPL()
573 obj->len); in UCL_EMIT_TYPE_IMPL()
576 ucl_emitter_print_string_msgpack (ctx, obj->value.sv, obj->len); in UCL_EMIT_TYPE_IMPL()
595 * so in case of multi-value keys we are using merely the first in UCL_EMIT_TYPE_IMPL()
619 if (ud->emitter) { in UCL_EMIT_TYPE_IMPL()
620 ud_out = ud->emitter (obj->value.ud); in UCL_EMIT_TYPE_IMPL()
625 ucl_emitter_print_string_msgpack (ctx, obj->value.sv, obj->len); in UCL_EMIT_TYPE_IMPL()
634 ucl_emitter_print_object_msgpack (ctx, obj->len); in ucl_emit_msgpack_start_obj()
641 ucl_emitter_print_array_msgpack (ctx, obj->len); in ucl_emit_msgpack_start_array()
669 struct ucl_emitter_functions *func; in ucl_object_emit_len() local
676 func = ucl_object_emit_memory_funcs ((void **)&res); in ucl_object_emit_len()
678 if (func != NULL) { in ucl_object_emit_len()
679 s = func->ud; in ucl_object_emit_len()
680 ucl_object_emit_full (obj, emit_type, func, NULL); in ucl_object_emit_len()
683 *outlen = s->i; in ucl_object_emit_len()
686 ucl_object_emit_funcs_free (func); in ucl_object_emit_len()
704 my_ctx.func = emitter; in ucl_object_emit_full()
709 my_ctx.ops->ucl_emitter_write_elt (&my_ctx, obj, true, false); in ucl_object_emit_full()