From d24de309dfc187688fee3e6f23a960ea46986f58 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 28 Oct 1999 03:30:13 +0000 Subject: 1999-10-27 Fred Fish * objdump.c (display_bfd): Break into two functions. The actual dumping code moves to dump_bfd. If bfd is not unambiguously recognized as a bfd_object, attempt to dump it as a bfd_core. (dump_bfd): New function. --- binutils/ChangeLog | 8 ++++++++ binutils/objdump.c | 58 +++++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 52 insertions(+), 14 deletions(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 9cf8511..7cf4f71 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,11 @@ +1999-10-27 Fred Fish + + * objdump.c (display_bfd): Break into two functions. The + actual dumping code moves to dump_bfd. If bfd is not + unambiguously recognized as a bfd_object, attempt to dump + it as a bfd_core. + (dump_bfd): New function. + 1999-10-26 Nick Clifton * dlltool.c (assemble_file): Remove spurious test of exp_name. diff --git a/binutils/objdump.c b/binutils/objdump.c index 92805d3..71bb65f 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -2042,23 +2042,12 @@ bfd *abfd; bfd_print_private_bfd_data (abfd, stdout); } +/* Dump selected contents of ABFD */ + static void -display_bfd (abfd) +dump_bfd (abfd) bfd *abfd; { - char **matching; - - if (!bfd_check_format_matches (abfd, bfd_object, &matching)) - { - nonfatal (bfd_get_filename (abfd)); - if (bfd_get_error () == bfd_error_file_ambiguously_recognized) - { - list_matching_formats (matching); - free (matching); - } - return; - } - /* If we are adjusting section VMA's, change them all now. Changing the BFD information is a hack. However, we must do it, or bfd_find_nearest_line will not do the right thing. */ @@ -2135,6 +2124,47 @@ display_bfd (abfd) } static void +display_bfd (abfd) + bfd *abfd; +{ + char **matching; + + if (bfd_check_format_matches (abfd, bfd_object, &matching)) + { + dump_bfd (abfd); + return; + } + + if (bfd_get_error () == bfd_error_file_ambiguously_recognized) + { + nonfatal (bfd_get_filename (abfd)); + list_matching_formats (matching); + free (matching); + return; + } + + if (bfd_get_error () != bfd_error_file_not_recognized) + { + nonfatal (bfd_get_filename (abfd)); + return; + } + + if (bfd_check_format_matches (abfd, bfd_core, &matching)) + { + dump_bfd (abfd); + return; + } + + nonfatal (bfd_get_filename (abfd)); + + if (bfd_get_error () == bfd_error_file_ambiguously_recognized) + { + list_matching_formats (matching); + free (matching); + } +} + +static void display_file (filename, target) char *filename; char *target; -- cgit v1.1