Commit 56fdfb61 authored by Michael S. Tsirkin's avatar Michael S. Tsirkin
Browse files

qapi/string-output-visitor: fix bugs



in human mode, we are creating the string:

16-31 (16-31)

instead of

16-17 (10-1f)

because we forgot to pass 'true' as the human parameter on one of the
two calls to format_string.
Also, this is a worsening of quality; previously we would produce

16 (0x10)

to make it obvious which number was hex.
Fix these issues.

Reported-by: default avatarEric Blake <eblake@redhat.com>
Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
parent 6ffa1695
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -98,7 +98,7 @@ static void format_string(StringOutputVisitor *sov, Range *r, bool next,
{
    if (r->end - r->begin > 1) {
        if (human) {
            g_string_append_printf(sov->string, "%" PRIx64 "-%" PRIx64,
            g_string_append_printf(sov->string, "0x%" PRIx64 "-%" PRIx64,
                                   r->begin, r->end - 1);

        } else {
@@ -107,7 +107,7 @@ static void format_string(StringOutputVisitor *sov, Range *r, bool next,
        }
    } else {
        if (human) {
            g_string_append_printf(sov->string, "%" PRIx64, r->begin);
            g_string_append_printf(sov->string, "0x%" PRIx64, r->begin);
        } else {
            g_string_append_printf(sov->string, "%" PRId64, r->begin);
        }
@@ -186,7 +186,7 @@ static void print_type_int(Visitor *v, int64_t *obj, const char *name,
        g_string_append(sov->string, " (");
        while (l) {
            Range *r = l->data;
            format_string(sov, r, l->next != NULL, false);
            format_string(sov, r, l->next != NULL, true);
            l = l->next;
        }
        g_string_append(sov->string, ")");