From fe198bc5f02e540c26be212b9cb5e6f516f700b8 Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Mon, 30 Jul 2012 19:48:28 +0200 Subject: [PATCH] Reorder formatting string arguments so that there are no gaps in references It is required that formatting string that uses $-style references lists all arguments. Signed-off-by: Petr Machata --- src/ChangeLog | 6 ++++++ src/nm.c | 16 ++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index aa7e2a5a8..d05bb2e36 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2012-07-30 Petr Machata + + * nm.c (show_symbols_bsd): Reorder arguments in {S,}FMTSTRS (and + corresponding printf) so that those that are referenced by only + one of the formatting strings are at the end. + 2012-07-29 Mark Wielaard * readelf.c (dwarf_lang_string): Use DW_LANG_ObjC, not DW_LANG_Objc. diff --git a/src/nm.c b/src/nm.c index 7db6fb89c..f50da0b1e 100644 --- a/src/nm.c +++ b/src/nm.c @@ -929,15 +929,15 @@ show_symbols_bsd (Elf *elf, const GElf_Ehdr *ehdr, GElf_Word strndx, static const char *const fmtstrs[] = { - [radix_hex] = "%8$s%2$0*1$" PRIx64 "%10$s %9$s%3$c%4$s %5$s", - [radix_decimal] = "%8$s%*" PRId64 "%10$s %9$s%3$c%4$s %5$s", - [radix_octal] = "%8$s%2$0*1$" PRIo64 "%10$s %9$s%3$c%4$s %5$s" + [radix_hex] = "%6$s%2$0*1$" PRIx64 "%8$s %7$s%3$c%4$s %5$s", + [radix_decimal] = "%6$s%*" PRId64 "%8$s %7$s%3$c%4$s %5$s", + [radix_octal] = "%6$s%2$0*1$" PRIo64 "%8$s %7$s%3$c%4$s %5$s" }; static const char *const sfmtstrs[] = { - [radix_hex] = "%8$s%2$0*1$" PRIx64 "%10$s %7$0*6$" PRIx64 " %9$s%3$c%4$s %5$s", - [radix_decimal] = "%8$s%2$*1$" PRId64 "%10$s %7$*6$" PRId64 " %9$s%3$c%4$s %5$s", - [radix_octal] = "%8$s%2$0*1$" PRIo64 "%10$s %7$0*6$" PRIo64 " %9$s%3$c%4$s %5$s" + [radix_hex] = "%6$s%2$0*1$" PRIx64 "%8$s %10$0*9$" PRIx64 " %7$s%3$c%4$s %5$s", + [radix_decimal] = "%6$s%2$*1$" PRId64 "%8$s %10$*9$" PRId64 " %7$s%3$c%4$s %5$s", + [radix_octal] = "%6$s%2$0*1$" PRIo64 "%8$s %10$0*9$" PRIo64 " %7$s%3$c%4$s %5$s" }; #ifdef USE_DEMANGLE @@ -1020,10 +1020,10 @@ show_symbols_bsd (Elf *elf, const GElf_Ehdr *ehdr, GElf_Word strndx, digits, syms[cnt].sym.st_value, class_type_char (elf, ehdr, &syms[cnt].sym), marker, symstr, - digits, (uint64_t) syms[cnt].sym.st_size, color_mode ? color_address : "", color, - color_mode ? color_off : ""); + color_mode ? color_off : "", + digits, (uint64_t) syms[cnt].sym.st_size); } if (color_mode) -- 2.47.2