From b19a6136f99541b5ac5084ffd169fca2b56857d6 Mon Sep 17 00:00:00 2001 From: pancake Date: Mon, 26 Dec 2016 04:06:33 +0100 Subject: [PATCH] Avoid dupe flag comments and UH.. trash strings --- libr/core/disasm.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/libr/core/disasm.c b/libr/core/disasm.c index b702a7272e..f129ec81db 100644 --- a/libr/core/disasm.c +++ b/libr/core/disasm.c @@ -2590,6 +2590,7 @@ static void ds_print_ptr(RDisasmState *ds, int len, int idx) { DOALIGN(); r_cons_printf (" ; '%c'", ch); } + bool flag_printed = false; if (p == UT64_MAX) { /* do nothing */ } else if (((st64)p) > 0) { @@ -2620,6 +2621,7 @@ static void ds_print_ptr(RDisasmState *ds, int len, int idx) { } CMTRIGHT_NL r_cons_printf (" ; 0x%"PFMT64x"%s%s", p, *flag?" ; ":"", flag); + flag_printed = true; } else { f = NULL; if (n == UT32_MAX || n == UT64_MAX) { @@ -2672,6 +2674,9 @@ static void ds_print_ptr(RDisasmState *ds, int len, int idx) { f = r_flag_get_i (core->flags, p); if (f) { r_str_filter (msg, 0); + if (!strncmp (msg, "UH..", 4)) { + *msg = 0; + } ds_comment_newline (ds); DOALIGN(); if (*msg) { @@ -2697,7 +2702,10 @@ static void ds_print_ptr(RDisasmState *ds, int len, int idx) { r_cons_printf (" ; \"%s\" @ 0x%"PFMT64x, msg, p); } } else { - r_cons_printf (" ; %s", f->name); + if (!flag_printed) { + r_cons_printf (" ; %s", f->name); + flag_printed = true; + } } } else { if (p == UT64_MAX || p == UT32_MAX) {