static void nonfatal (const char *msg) { bfd_nonfatal (msg); exit_status = 1; }
void bfd_fatal (const char *string) { bfd_nonfatal (string); xexit (1); }
int main(int ac, char **av) { bfd *abfd; struct coff_ofile *tree; char **matching; char *input_file = NULL; int opt; static struct option long_options[] = { { "help", no_argument, 0, 'h' }, { "version", no_argument, 0, 'V' }, { NULL, no_argument, 0, 0 } }; #if defined(HAVE_SETLOCALE) && defined(HAVE_LC_MESSAGES) setlocale(LC_MESSAGES, ""); #endif /* HAVE_SETLOCALE && HAVE_LC_MESSAGES */ #if defined(HAVE_SETLOCALE) setlocale(LC_CTYPE, ""); #endif /* HAVE_SETLOCALE */ bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); program_name = av[0]; xmalloc_set_program_name (program_name); while ((opt = getopt_long(ac, av, "HhVv", long_options, (int *)NULL)) != EOF) { switch (opt) { case 'H': case 'h': show_usage(stdout, 0); break; case 'v': case 'V': print_version("coffdump"); xexit(0); case 0: break; default: show_usage(stderr, 1); break; } } if (optind < ac) { input_file = av[optind]; } if (!input_file) fatal(_("no input file specified")); abfd = bfd_openr(input_file, 0); if (!abfd) bfd_fatal(input_file); if (! bfd_check_format_matches(abfd, bfd_object, &matching)) { bfd_nonfatal(input_file); if (bfd_get_error() == bfd_error_file_ambiguously_recognized) { list_matching_formats(matching); free(matching); } xexit(1); } tree = coff_grok(abfd); coff_dump(tree); printf("\n"); return 0; }