X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=plugins%2Ftext%2Fpretty%2Fprint.c;h=7234b8a485bbe4d94e4bbc3e37e6c5b3dd1a5535;hb=74fb045227fb3f01c59bd469c76f466fbd7a25a0;hp=e698f4bd6671e87e6cec52bc115e25d42068e03a;hpb=db14aa44cc768ce56077e3fb0990c1f743965184;p=babeltrace.git diff --git a/plugins/text/pretty/print.c b/plugins/text/pretty/print.c index e698f4bd..7234b8a4 100644 --- a/plugins/text/pretty/print.c +++ b/plugins/text/pretty/print.c @@ -27,19 +27,7 @@ * SOFTWARE. */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include #include #include #include @@ -191,9 +179,10 @@ void print_timestamp_wall(struct pretty_component *pretty, struct tm tm; time_t time_s = (time_t) ts_sec_abs; - if (is_negative) { + if (is_negative && !pretty->negative_timestamp_warning_done) { // TODO: log instead fprintf(stderr, "[warning] Fallback to [sec.ns] to print negative time value. Use --clock-seconds.\n"); + pretty->negative_timestamp_warning_done = true; goto seconds; } @@ -848,11 +837,18 @@ enum bt_component_status print_enum(struct pretty_component *pretty, iter = bt_ctf_field_type_enumeration_find_mappings_by_unsigned_value( enumeration_field_type, value); } - if (!iter) { - ret = BT_COMPONENT_STATUS_ERROR; - goto end; - } g_string_append(pretty->string, "( "); + ret = bt_ctf_field_type_enumeration_mapping_iterator_next(iter); + if (ret) { + if (pretty->use_colors) { + g_string_append(pretty->string, COLOR_UNKNOWN); + } + g_string_append(pretty->string, ""); + if (pretty->use_colors) { + g_string_append(pretty->string, COLOR_RST); + } + goto skip_loop; + } for (;;) { const char *mapping_name; @@ -874,15 +870,7 @@ enum bt_component_status print_enum(struct pretty_component *pretty, break; } } - if (!nr_mappings) { - if (pretty->use_colors) { - g_string_append(pretty->string, COLOR_UNKNOWN); - } - g_string_append(pretty->string, ""); - if (pretty->use_colors) { - g_string_append(pretty->string, COLOR_RST); - } - } +skip_loop: g_string_append(pretty->string, " : container = "); ret = print_integer(pretty, container_field); if (ret != BT_COMPONENT_STATUS_OK) { @@ -1256,7 +1244,9 @@ enum bt_component_status print_variant(struct pretty_component *pretty, } iter = bt_ctf_field_enumeration_get_mappings(tag_field); - if (!iter) { + iter_ret = bt_ctf_field_type_enumeration_mapping_iterator_next( + iter); + if (!iter || ret) { bt_put(tag_field); ret = BT_COMPONENT_STATUS_ERROR; goto end; @@ -1316,14 +1306,23 @@ enum bt_component_status print_field(struct pretty_component *pretty, case CTF_TYPE_ENUM: return print_enum(pretty, field); case CTF_TYPE_STRING: + { + const char *str; + + str = bt_ctf_field_string_get_value(field); + if (!str) { + return BT_COMPONENT_STATUS_ERROR; + } + if (pretty->use_colors) { g_string_append(pretty->string, COLOR_STRING_VALUE); } - print_escape_string(pretty, bt_ctf_field_string_get_value(field)); + print_escape_string(pretty, str); if (pretty->use_colors) { g_string_append(pretty->string, COLOR_RST); } return BT_COMPONENT_STATUS_OK; + } case CTF_TYPE_STRUCT: return print_struct(pretty, field, print_names, filter_fields, filter_array_len);