struct ctf_text_stream_pos *pos = ctf_text_pos(ppos);
GArray *qs;
int i, ret;
+ int field_nr_saved;
+
+ if (!print_field(definition))
+ return 0;
if (pos->dummy)
return 0;
- print_pos_tabs(pos);
+
+ if (pos->field_nr++ != 0)
+ fprintf(pos->fp, ",");
+ fprintf(pos->fp, " ");
+ if (pos->print_names)
+ fprintf(pos->fp, "%s = ",
+ g_quark_to_string(definition->name));
+
+ field_nr_saved = pos->field_nr;
+ pos->field_nr = 0;
fprintf(pos->fp, "(");
pos->depth++;
- ret = generic_rw(ppos, &integer_definition->p);
- print_pos_tabs(pos);
-
qs = enum_definition->value;
- assert(qs);
- for (i = 0; i < qs->len; i++) {
- GQuark q = g_array_index(qs, GQuark, i);
- const char *str = g_quark_to_string(q);
- fprintf(pos->fp, "%s\n", str);
+ if (qs) {
+ for (i = 0; i < qs->len; i++) {
+ GQuark q = g_array_index(qs, GQuark, i);
+ const char *str = g_quark_to_string(q);
+
+ assert(str);
+ if (pos->field_nr++ != 0)
+ fprintf(pos->fp, ",");
+ fprintf(pos->fp, " ");
+ fprintf(pos->fp, "%s", str);
+ }
+ } else {
+ fprintf(pos->fp, " <unknown>");
}
+
+ pos->field_nr = 0;
+ fprintf(pos->fp, " :");
+ ret = generic_rw(ppos, &integer_definition->p);
+
pos->depth--;
- print_pos_tabs(pos);
- fprintf(pos->fp, ")");
+ fprintf(pos->fp, " )");
+ pos->field_nr = field_nr_saved;
return ret;
}