}
static
-void append_struct_variant_field_name(struct metadata_context *context,
+void append_field_name(struct metadata_context *context,
const char *name)
{
g_string_append_c(context->string, ' ');
- if (bt_ctf_validate_identifier(name)) {
+ if (bt_ctf_validate_identifier(name) || *name == '_') {
g_string_append_c(context->string, '_');
}
}
if (context->field_name->len) {
- append_struct_variant_field_name(context,
+ append_field_name(context,
context->field_name->str);
g_string_assign(context->field_name, "");
}
}
if (context->field_name->len) {
- append_struct_variant_field_name(context,
+ append_field_name(context,
context->field_name->str);
}
g_string_append(context->string, ";\n");
"ft-addr=%p, metadata-context-addr=%p", type, context);
context->field_name = g_string_new("");
if (variant->tag_name->len > 0) {
- g_string_append_printf(context->string,
- "variant <%s> {\n", variant->tag_name->str);
+ g_string_append(context->string, "variant <");
+ append_field_name(context, variant->tag_name->str);
+ g_string_append(context->string, "> {\n");
} else {
g_string_append(context->string, "variant {\n");
}
}
if (context->field_name->len) {
- append_struct_variant_field_name(context,
+ append_field_name(context,
context->field_name->str);
g_string_append_c(context->string, ';');
}
}
if (context->field_name->len) {
- append_struct_variant_field_name(context,
+ append_field_name(context,
context->field_name->str);
g_string_append_printf(context->string, "[%u]", array->length);
}
if (context->field_name->len) {
- append_struct_variant_field_name(context,
- context->field_name->str);
-
- g_string_append_printf(context->string, "[%s]",
- sequence->length_field_name->str);
+ append_field_name(context, context->field_name->str);
g_string_assign(context->field_name, "");
- } else {
- g_string_append_printf(context->string, "[%s]",
- sequence->length_field_name->str);
}
+ g_string_append(context->string, "[");
+ append_field_name(context, sequence->length_field_name->str);
+ g_string_append(context->string, "]");
end:
return ret;
}