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,5 +1,6 @@
/* Sysroff object format 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.
@@ -22,7 +23,7 @@
/* Written by Steve Chamberlain <sac@cygnus.com>.
This program reads a SYSROFF object file and prints it in an
almost human readable form to stdout. */
almost human readable form to stdout. */
#include "bfd.h"
#include "bucomm.h"
@@ -52,7 +53,6 @@ static void dump_symbol_info PARAMS ((void));
static void derived_type PARAMS ((void));
static void module PARAMS ((void));
static void show_usage PARAMS ((FILE *, int));
static void show_help PARAMS ((void));
extern char *getCHARS PARAMS ((unsigned char *, int *, int, int));
extern int fillup PARAMS ((char *));
@@ -73,14 +73,13 @@ getCHARS (ptr, idx, size, max)
int oc = *idx / 8;
char *r;
int b = size;
if (b >= max)
{
return "*undefined*";
}
return "*undefined*";
if (b == 0)
{
/* Got to work out the length of the string from self */
/* Got to work out the length of the string from self. */
b = ptr[oc++];
(*idx) += 8;
}
@@ -89,6 +88,7 @@ getCHARS (ptr, idx, size, max)
r = xcalloc (b + 1, 1);
memcpy (r, ptr + oc, b);
r[b] = 0;
return r;
}
@@ -116,10 +116,12 @@ dh (ptr, size)
for (j = 0; j < span && j + i < size; j++)
{
int c = ptr[i + j];
if (c < 32 || c > 127)
c = '.';
printf ("%c", c);
}
printf ("\n");
}
}
@@ -131,18 +133,17 @@ fillup (ptr)
int size;
int sum;
int i;
size = getc (file) - 2;
fread (ptr, 1, size, file);
sum = code + size + 2;
for (i = 0; i < size; i++)
{
sum += ptr[i];
}
sum += ptr[i];
if ((sum & 0xff) != 0xff)
{
printf ("SUM IS %x\n", sum);
}
printf ("SUM IS %x\n", sum);
if (dump)
dh (ptr, size);
@@ -160,12 +161,13 @@ getBARRAY (ptr, idx, dsize, max)
int i;
int byte = *idx / 8;
int size = ptr[byte++];
res.len = size;
res.data = (unsigned char *) xmalloc (size);
for (i = 0; i < size; i++)
{
res.data[i] = ptr[byte++];
}
res.data[i] = ptr[byte++];
return res;
}
@@ -180,13 +182,14 @@ getINT (ptr, idx, size, max)
int byte = *idx / 8;
if (byte >= max)
{
return 0;
}
return 0;
if (size == -2)
size = addrsize;
if (size == -1)
size = 0;
switch (size)
{
case 0:
@@ -203,6 +206,7 @@ getINT (ptr, idx, size, max)
default:
abort ();
}
*idx += size * 8;
return n;
}
@@ -233,14 +237,15 @@ itheader (name, code)
}
static int indent;
static void
p ()
{
int i;
for (i = 0; i < indent; i++)
{
printf ("| ");
}
printf ("| ");
printf ("> ");
}
@@ -255,12 +260,13 @@ pbarray (y)
barray *y;
{
int x;
printf ("%d (", y->len);
for (x = 0; x < y->len; x++)
{
printf ("(%02x %c)", y->data[x],
ISPRINT (y->data[x]) ? y->data[x] : '.');
}
printf ("(%02x %c)", y->data[x],
ISPRINT (y->data[x]) ? y->data[x] : '.');
printf (")\n");
}
@@ -269,27 +275,26 @@ pbarray (y)
#include "sysroff.c"
/*
* FIXME: sysinfo, which generates sysroff.[ch] from sysroff.info, can't
* hack the special case of the tr block, which has no contents. So we
* implement our own functions for reading in and printing out the tr
* block.
*/
/* FIXME: sysinfo, which generates sysroff.[ch] from sysroff.info, can't
hack the special case of the tr block, which has no contents. So we
implement our own functions for reading in and printing out the tr
block. */
#define IT_tr_CODE 0x7f
void
sysroff_swap_tr_in()
{
char raw[255];
char raw[255];
memset(raw, 0, 255);
fillup(raw);
memset (raw, 0, 255);
fillup (raw);
}
void
sysroff_print_tr_out()
{
itheader("tr", IT_tr_CODE);
itheader ("tr", IT_tr_CODE);
}
static int
@@ -297,6 +302,7 @@ getone (type)
int type;
{
int c = getc (file);
code = c;
if ((c & 0x7f) != type)
@@ -314,6 +320,7 @@ getone (type)
sysroff_print_cs_out (&dummy);
}
break;
case IT_dln_CODE:
{
struct IT_dln dummy;
@@ -321,6 +328,7 @@ getone (type)
sysroff_print_dln_out (&dummy);
}
break;
case IT_hd_CODE:
{
struct IT_hd dummy;
@@ -329,6 +337,7 @@ getone (type)
sysroff_print_hd_out (&dummy);
}
break;
case IT_dar_CODE:
{
struct IT_dar dummy;
@@ -336,6 +345,7 @@ getone (type)
sysroff_print_dar_out (&dummy);
}
break;
case IT_dsy_CODE:
{
struct IT_dsy dummy;
@@ -343,6 +353,7 @@ getone (type)
sysroff_print_dsy_out (&dummy);
}
break;
case IT_dfp_CODE:
{
struct IT_dfp dummy;
@@ -350,6 +361,7 @@ getone (type)
sysroff_print_dfp_out (&dummy);
}
break;
case IT_dso_CODE:
{
struct IT_dso dummy;
@@ -357,6 +369,7 @@ getone (type)
sysroff_print_dso_out (&dummy);
}
break;
case IT_dpt_CODE:
{
struct IT_dpt dummy;
@@ -364,6 +377,7 @@ getone (type)
sysroff_print_dpt_out (&dummy);
}
break;
case IT_den_CODE:
{
struct IT_den dummy;
@@ -371,6 +385,7 @@ getone (type)
sysroff_print_den_out (&dummy);
}
break;
case IT_dbt_CODE:
{
struct IT_dbt dummy;
@@ -378,6 +393,7 @@ getone (type)
sysroff_print_dbt_out (&dummy);
}
break;
case IT_dty_CODE:
{
struct IT_dty dummy;
@@ -385,6 +401,7 @@ getone (type)
sysroff_print_dty_out (&dummy);
}
break;
case IT_un_CODE:
{
struct IT_un dummy;
@@ -392,6 +409,7 @@ getone (type)
sysroff_print_un_out (&dummy);
}
break;
case IT_sc_CODE:
{
struct IT_sc dummy;
@@ -399,6 +417,7 @@ getone (type)
sysroff_print_sc_out (&dummy);
}
break;
case IT_er_CODE:
{
struct IT_er dummy;
@@ -406,6 +425,7 @@ getone (type)
sysroff_print_er_out (&dummy);
}
break;
case IT_ed_CODE:
{
struct IT_ed dummy;
@@ -413,6 +433,7 @@ getone (type)
sysroff_print_ed_out (&dummy);
}
break;
case IT_sh_CODE:
{
struct IT_sh dummy;
@@ -420,6 +441,7 @@ getone (type)
sysroff_print_sh_out (&dummy);
}
break;
case IT_ob_CODE:
{
struct IT_ob dummy;
@@ -427,6 +449,7 @@ getone (type)
sysroff_print_ob_out (&dummy);
}
break;
case IT_rl_CODE:
{
struct IT_rl dummy;
@@ -434,6 +457,7 @@ getone (type)
sysroff_print_rl_out (&dummy);
}
break;
case IT_du_CODE:
{
struct IT_du dummy;
@@ -442,6 +466,7 @@ getone (type)
sysroff_print_du_out (&dummy);
}
break;
case IT_dus_CODE:
{
struct IT_dus dummy;
@@ -449,6 +474,7 @@ getone (type)
sysroff_print_dus_out (&dummy);
}
break;
case IT_dul_CODE:
{
struct IT_dul dummy;
@@ -456,6 +482,7 @@ getone (type)
sysroff_print_dul_out (&dummy);
}
break;
case IT_dss_CODE:
{
struct IT_dss dummy;
@@ -463,6 +490,7 @@ getone (type)
sysroff_print_dss_out (&dummy);
}
break;
case IT_hs_CODE:
{
struct IT_hs dummy;
@@ -470,6 +498,7 @@ getone (type)
sysroff_print_hs_out (&dummy);
}
break;
case IT_dps_CODE:
{
struct IT_dps dummy;
@@ -477,24 +506,27 @@ getone (type)
sysroff_print_dps_out (&dummy);
}
break;
case IT_tr_CODE:
{
sysroff_swap_tr_in ();
sysroff_print_tr_out ();
}
sysroff_swap_tr_in ();
sysroff_print_tr_out ();
break;
case IT_dds_CODE:
{
struct IT_dds dummy;
sysroff_swap_dds_in (&dummy);
sysroff_print_dds_out (&dummy);
}
break;
default:
printf ("GOT A %x\n", c);
return 0;
break;
}
return 1;
}
@@ -552,9 +584,7 @@ must (x)
int x;
{
if (!getone (x))
{
printf ("WANTED %x!!\n", x);
}
printf ("WANTED %x!!\n", x);
}
static void
@@ -563,6 +593,7 @@ tab (i, s)
char *s;
{
indent += i;
if (s)
{
p ();
@@ -575,6 +606,7 @@ static void
dump_symbol_info ()
{
tab (1, "SYMBOL INFO");
while (opt (IT_dsy_CODE))
{
if (opt (IT_dty_CODE))
@@ -584,6 +616,7 @@ dump_symbol_info ()
must (IT_dty_CODE);
}
}
tab (-1, "");
}
@@ -591,6 +624,7 @@ static void
derived_type ()
{
tab (1, "DERIVED TYPE");
while (1)
{
if (opt (IT_dpp_CODE))
@@ -730,16 +764,15 @@ show_usage (file, status)
FILE *file;
int status;
{
fprintf (file, _("Usage: %s [-hV] in-file\n"), program_name);
exit (status);
}
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 Print the program's version number\n"));
static void
show_help ()
{
printf (_("%s: Print a human readable interpretation of a SYSROFF object file\n"),
program_name);
show_usage (stdout, 0);
if (status == 0)
fprintf (file, _("Report bugs to %s\n"), REPORT_BUGS_TO);
exit (status);
}
int
@@ -768,13 +801,15 @@ main (ac, av)
program_name = av[0];
xmalloc_set_program_name (program_name);
while ((opt = getopt_long (ac, av, "hV", long_options, (int *) NULL)) != EOF)
while ((opt = getopt_long (ac, av, "HhVv", long_options, (int *) NULL)) != EOF)
{
switch (opt)
{
case 'H':
case 'h':
show_help ();
show_usage (stdout, 0);
/*NOTREACHED*/
case 'v':
case 'V':
print_version ("sysdump");
exit (0);
@@ -790,20 +825,15 @@ main (ac, av)
/* The input and output files may be named on the command line. */
if (optind < ac)
{
input_file = av[optind];
}
input_file = av[optind];
if (!input_file)
{
fatal (_("no input file specified"));
}
fatal (_("no input file specified"));
file = fopen (input_file, FOPEN_RB);
if (!file)
{
fatal (_("cannot open input file %s"), input_file);
}
fatal (_("cannot open input file %s"), input_file);
module ();
return 0;