Tidy up formatting of --help output.

This commit is contained in:
Nick Clifton
2002-01-23 16:12:56 +00:00
parent c69539487b
commit 8b53311e10
16 changed files with 620 additions and 468 deletions

View File

@@ -1,27 +1,27 @@
/* Coff file dumper.
Copyright 1994, 1995, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
Copyright 1994, 1995, 1998, 1999, 2000, 2001, 2002
Free Software Foundation, Inc.
This file is part of GNU Binutils.
This file is part of GNU Binutils.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Written by Steve Chamberlain <sac@cygnus.com>
This module reads a type tree generated by coffgrok and prints
it out so we can test the grokker.
*/
it out so we can test the grokker. */
#include <bfd.h>
#include <getopt.h>
@@ -44,12 +44,11 @@ static void dump_coff_sfile PARAMS ((struct coff_sfile *));
static void dump_coff_section PARAMS ((struct coff_section *));
extern void coff_dump PARAMS ((struct coff_ofile *));
static void show_usage PARAMS ((FILE *, int));
static void show_help PARAMS ((void));
extern int main PARAMS ((int, char **));
static void
tab (x)
int x;
int x;
{
static int indent;
int i;
@@ -91,7 +90,8 @@ int x;
}
}
static void nl ()
static void
nl ()
{
atnl = 1;
}
@@ -102,21 +102,25 @@ dump_coff_lines (p)
{
int i;
int online = 0;
tab(1);
printf(_("#lines %d "),p->nlines);
tab (1);
printf (_("#lines %d "),p->nlines);
for (i = 0; i < p->nlines; i++)
{
printf("(%d 0x%x)", p->lines[i], p->addresses[i]);
printf ("(%d 0x%x)", p->lines[i], p->addresses[i]);
online++;
if (online > 6)
{
nl();
tab(0);
nl ();
tab (0);
online = 0;
}
}
nl();
tab(-1);
nl ();
tab (-1);
}
static void
@@ -125,13 +129,14 @@ dump_coff_type (p)
{
tab (1);
printf ("size %d ", p->size);
switch (p->type)
{
case coff_secdef_type:
printf ("section definition at %x size %x\n",
p->u.asecdef.address,
p->u.asecdef.size);
nl();
nl ();
break;
case coff_pointer_type:
printf ("pointer to");
@@ -325,7 +330,6 @@ dump_coff_visible (p)
tab (-1);
}
void
dump_coff_symbol (p)
struct coff_symbol *p;
@@ -333,6 +337,7 @@ dump_coff_symbol (p)
tab (1);
printf ("List of symbols");
nl ();
while (p)
{
tab (1);
@@ -363,35 +368,37 @@ static void
dump_coff_scope (p)
struct coff_scope *p;
{
if (p) {
tab (1);
printf ("List of blocks %lx ",(unsigned long) p);
if (p->sec) {
printf( " %s %x..%x", p->sec->name,p->offset, p->offset + p->size -1);
}
nl ();
tab (0);
printf ("*****************");
nl ();
while (p)
if (p)
{
tab (0);
printf ("vars %d", p->nvars);
nl ();
dump_coff_symbol (p->vars_head);
printf ("blocks");
nl ();
dump_coff_scope (p->list_head);
nl ();
p = p->next;
}
tab (1);
printf ("List of blocks %lx ",(unsigned long) p);
tab (0);
printf ("*****************");
nl ();
tab (-1);
}
if (p->sec)
printf( " %s %x..%x", p->sec->name,p->offset, p->offset + p->size -1);
nl ();
tab (0);
printf ("*****************");
nl ();
while (p)
{
tab (0);
printf ("vars %d", p->nvars);
nl ();
dump_coff_symbol (p->vars_head);
printf ("blocks");
nl ();
dump_coff_scope (p->list_head);
nl ();
p = p->next;
}
tab (0);
printf ("*****************");
nl ();
tab (-1);
}
}
static void
@@ -401,6 +408,7 @@ dump_coff_sfile (p)
tab (1);
printf ("List of source files");
nl ();
while (p)
{
tab (0);
@@ -414,25 +422,27 @@ dump_coff_sfile (p)
static void
dump_coff_section(ptr)
struct coff_section *ptr;
struct coff_section *ptr;
{
int i;
tab(1);
printf("section %s %d %d address %x size %x number %d nrelocs %d",
ptr->name, ptr->code, ptr->data, ptr->address,ptr->size, ptr->number, ptr->nrelocs);
nl();
tab (1);
printf ("section %s %d %d address %x size %x number %d nrelocs %d",
ptr->name, ptr->code, ptr->data, ptr->address,ptr->size,
ptr->number, ptr->nrelocs);
nl ();
for (i = 0; i < ptr->nrelocs; i++)
{
tab(0);
printf("(%x %s %x)",
ptr->relocs[i].offset,
ptr->relocs[i].symbol->name,
ptr->relocs[i].addend);
nl();
tab (0);
printf ("(%x %s %x)",
ptr->relocs[i].offset,
ptr->relocs[i].symbol->name,
ptr->relocs[i].addend);
nl ();
}
tab(-1);
tab (-1);
}
void
@@ -440,17 +450,17 @@ coff_dump (ptr)
struct coff_ofile *ptr;
{
int i;
printf ("Coff dump");
nl ();
printf ("#souces %d", ptr->nsources);
nl ();
dump_coff_sfile (ptr->source_head);
for (i = 0; i < ptr->nsections; i++)
dump_coff_section(ptr->sections + i);
dump_coff_section (ptr->sections + i);
}
char * program_name;
static void
@@ -458,19 +468,19 @@ show_usage (file, status)
FILE *file;
int status;
{
fprintf (file, "Usage: %s [-hV] in-file\n", program_name);
fprintf (file, _("Usage: %s [option(s)] in-file\n"), program_name);
fprintf (file, _(" Print a human readable interpretation of a SYSROFF object file\n"));
fprintf (file, _(" The options are:\n\
-h --help Display this information\n\
-v --version Display the program's version\n\
\n"));
if (status == 0)
fprintf (file, _("Report bugs to %s\n"), REPORT_BUGS_TO);
exit (status);
}
static void
show_help ()
{
printf (_("%s: Print a human readable interpretation of a SYSROFF object file\n"),
program_name);
show_usage (stdout, 0);
}
int
main (ac, av)
int ac;
@@ -500,24 +510,25 @@ main (ac, av)
program_name = av[0];
xmalloc_set_program_name (program_name);
while ((opt = getopt_long (ac, av, "hV", long_options,
while ((opt = getopt_long (ac, av, "HhVv", long_options,
(int *) NULL))
!= EOF)
{
switch (opt)
{
case 'H':
case 'h':
show_help ();
/*NOTREACHED*/
show_usage (stdout, 0);
break;
case 'v':
case 'V':
print_version ("coffdump");
exit (0);
/*NOTREACHED*/
case 0:
break;
default:
show_usage (stderr, 1);
/*NOTREACHED*/
break;
}
}
@@ -527,9 +538,8 @@ main (ac, av)
}
if (!input_file)
{
fatal (_("no input file specified"));
}
fatal (_("no input file specified"));
abfd = bfd_openr (input_file, 0);
if (!abfd)
@@ -538,6 +548,7 @@ main (ac, av)
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);
@@ -548,7 +559,8 @@ main (ac, av)
tree = coff_grok (abfd);
coff_dump(tree);
printf("\n");
coff_dump (tree);
printf ("\n");
return 0;
}