diff options
author | Nick Clifton <nickc@redhat.com> | 2003-06-19 10:23:39 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2003-06-19 10:23:39 +0000 |
commit | b19aac67f88b9d48ac9b91f89afbab18ce6b2f77 (patch) | |
tree | e912bb4cae76a3dc25309f18dcac350ab89d2993 /binutils | |
parent | 4add8633611b5b873029a4b736aeb4bf72aef5ea (diff) | |
download | ppe42-binutils-b19aac67f88b9d48ac9b91f89afbab18ce6b2f77.tar.gz ppe42-binutils-b19aac67f88b9d48ac9b91f89afbab18ce6b2f77.zip |
When printing DEC_5 values, if the number is bigger than 99999 switch to using
hexadecimal notation.
Diffstat (limited to 'binutils')
-rw-r--r-- | binutils/ChangeLog | 6 | ||||
-rw-r--r-- | binutils/readelf.c | 48 |
2 files changed, 43 insertions, 11 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 7008bf9922..cf78bb2b0c 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2003-06-19 Nick Clifton <nickc@redhat.com> + + * readelf.c (print_vma): When printing DEC_5 values, if the + number is bigger than 99999 switch to using hexadecimal + notation. + 2003-06-11 Nick Clifton <nickc@redhat.com> * objcopy.c (gnu_debuglink_filename): New variable. diff --git a/binutils/readelf.c b/binutils/readelf.c index 8e8d39e250..16bc44e6b9 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -624,13 +624,34 @@ print_vma (vma, mode) { switch (mode) { - case FULL_HEX: printf ("0x"); /* drop through */ - case LONG_HEX: printf ("%8.8lx", (unsigned long) vma); break; - case PREFIX_HEX: printf ("0x"); /* drop through */ - case HEX: printf ("%lx", (unsigned long) vma); break; - case DEC: printf ("%ld", (unsigned long) vma); break; - case DEC_5: printf ("%5ld", (long) vma); break; - case UNSIGNED: printf ("%lu", (unsigned long) vma); break; + case FULL_HEX: + printf ("0x"); + /* Drop through. */ + case LONG_HEX: + printf ("%8.8lx", (unsigned long) vma); + break; + + case DEC_5: + if (vma <= 99999) + { + printf ("** %5ld", (long) vma); + break; + } + /* Drop through. */ + case PREFIX_HEX: + printf ("0x"); + /* Drop through. */ + case HEX: + printf ("%lx", (unsigned long) vma); + break; + + case DEC: + printf ("%ld", (unsigned long) vma); + break; + + case UNSIGNED: + printf ("%lu", (unsigned long) vma); + break; } } #ifdef BFD64 @@ -640,7 +661,7 @@ print_vma (vma, mode) { case FULL_HEX: printf ("0x"); - /* drop through */ + /* Drop through. */ case LONG_HEX: printf_vma (vma); @@ -648,7 +669,7 @@ print_vma (vma, mode) case PREFIX_HEX: printf ("0x"); - /* drop through */ + /* Drop through. */ case HEX: #if BFD_HOST_64BIT_LONG @@ -675,13 +696,18 @@ print_vma (vma, mode) case DEC_5: #if BFD_HOST_64BIT_LONG - printf ("%5ld", vma); + if (vma <= 99999) + printf ("%5ld", vma); + else + printf ("%#lx", vma); #else if (_bfd_int64_high (vma)) /* ugg */ printf ("++%ld", _bfd_int64_low (vma)); - else + else if (vma <= 99999) printf ("%5ld", _bfd_int64_low (vma)); + else + printf ("%#lx", _bfd_int64_low (vma)); #endif break; |