gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / binutils / sysdump.c
index 0b0d49524ffd14b695ac0e7c205b7d237d733dc4..7eebbd61d3373a17c884a327fab24660fcae1c95 100644 (file)
@@ -1,11 +1,11 @@
 /* Sysroff object format dumper.
 /* Sysroff object format dumper.
-   Copyright 1994, 1995, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1994-2020 Free Software Foundation, Inc.
 
    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
 
    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
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
 
    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.  */
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+   02110-1301, USA.  */
 
 
 /* Written by Steve Chamberlain <sac@cygnus.com>.
 
  This program reads a SYSROFF object file and prints it in an
 
 
 /* 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 "sysdep.h"
 #include "bfd.h"
 #include "bfd.h"
-#include "bucomm.h"
 #include "safe-ctype.h"
 #include "safe-ctype.h"
-
-#include <stdio.h>
-#include <libiberty.h>
-#include <getopt.h>
+#include "libiberty.h"
+#include "getopt.h"
+#include "bucomm.h"
 #include "sysroff.h"
 
 static int dump = 1;
 #include "sysroff.h"
 
 static int dump = 1;
@@ -39,48 +38,24 @@ static int code;
 static int addrsize = 4;
 static FILE *file;
 
 static int addrsize = 4;
 static FILE *file;
 
-static void dh PARAMS ((unsigned char *, int));
-static void itheader PARAMS ((char *, int));
-static void p PARAMS ((void));
-static void tabout PARAMS ((void));
-static void pbarray PARAMS ((barray *));
-static int getone PARAMS ((int));
-static int opt PARAMS ((int));
-static void must PARAMS ((int));
-static void tab PARAMS ((int, char *));
-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 *));
-extern barray getBARRAY PARAMS ((unsigned char *, int *, int, int));
-extern int getINT PARAMS ((unsigned char *, int *, int, int));
-extern int getBITS PARAMS ((char *, int *, int, int));
-extern void sysroff_swap_tr_in PARAMS ((void));
-extern void sysroff_print_tr_out PARAMS ((void));
-extern int main PARAMS ((int, char **));
-
-char *
-getCHARS (ptr, idx, size, max)
-     unsigned char *ptr;
-     int *idx;
-     int size;
-     int max;
+static void derived_type (void);
+
+static char *
+getCHARS (unsigned char *ptr, int *idx, int size, int max)
 {
   int oc = *idx / 8;
   char *r;
   int b = size;
 {
   int oc = *idx / 8;
   char *r;
   int b = size;
+
   if (b >= max)
   if (b >= max)
-    {
-      return "*undefined*";
-    }
+    return _("*undefined*");
 
   if (b == 0)
     {
 
   if (b == 0)
     {
-      /* Got to work out the length of the string from self */
+      /* PR 17512: file: 13caced2.  */
+      if (oc >= max)
+       return _("*corrupt*");
+      /* Got to work out the length of the string from self.  */
       b = ptr[oc++];
       (*idx) += 8;
     }
       b = ptr[oc++];
       (*idx) += 8;
     }
@@ -89,13 +64,12 @@ getCHARS (ptr, idx, size, max)
   r = xcalloc (b + 1, 1);
   memcpy (r, ptr + oc, b);
   r[b] = 0;
   r = xcalloc (b + 1, 1);
   memcpy (r, ptr + oc, b);
   r[b] = 0;
+
   return r;
 }
 
 static void
   return r;
 }
 
 static void
-dh (ptr, size)
-     unsigned char *ptr;
-     int size;
+dh (unsigned char *ptr, int size)
 {
   int i;
   int j;
 {
   int i;
   int j;
@@ -107,86 +81,93 @@ dh (ptr, size)
     {
       for (j = 0; j < span; j++)
        {
     {
       for (j = 0; j < span; j++)
        {
-         if (j + i < size) 
+         if (j + i < size)
            printf ("%02x ", ptr[i + j]);
            printf ("%02x ", ptr[i + j]);
-          else
-            printf ("   ");
+         else
+           printf ("   ");
        }
 
       for (j = 0; j < span && j + i < size; j++)
        {
          int c = ptr[i + j];
        }
 
       for (j = 0; j < span && j + i < size; j++)
        {
          int c = ptr[i + j];
+
          if (c < 32 || c > 127)
            c = '.';
          printf ("%c", c);
        }
          if (c < 32 || c > 127)
            c = '.';
          printf ("%c", c);
        }
+
       printf ("\n");
     }
 }
 
       printf ("\n");
     }
 }
 
-int
-fillup (ptr)
-     char *ptr;
+static int
+fillup (unsigned char *ptr)
 {
   int size;
   int sum;
   int i;
 {
   int size;
   int sum;
   int i;
-  size = getc (file) - 2;
-  fread (ptr, 1, size, file);
+
+  size = getc (file);
+  if (size == EOF
+      || size <= 2)
+    return 0;
+
+  size -= 2;
+  if (fread (ptr, size, 1, file) != 1)
+    return 0;
+
   sum = code + size + 2;
   sum = code + size + 2;
+
   for (i = 0; i < size; i++)
   for (i = 0; i < size; i++)
-    {
-      sum += ptr[i];
-    }
+    sum += ptr[i];
 
   if ((sum & 0xff) != 0xff)
 
   if ((sum & 0xff) != 0xff)
-    {
-      printf ("SUM IS %x\n", sum);
-    }
+    printf (_("SUM IS %x\n"), sum);
+
   if (dump)
     dh (ptr, size);
 
   if (dump)
     dh (ptr, size);
 
-  return size - 1;
+  return size;
 }
 
 }
 
-barray
-getBARRAY (ptr, idx, dsize, max)
-     unsigned char *ptr;
-     int *idx;
-     int dsize ATTRIBUTE_UNUSED;
-     int max ATTRIBUTE_UNUSED;
+static barray
+getBARRAY (unsigned char *ptr, int *idx, int dsize ATTRIBUTE_UNUSED,
+          int max ATTRIBUTE_UNUSED)
 {
   barray res;
   int i;
   int byte = *idx / 8;
   int size = ptr[byte++];
 {
   barray res;
   int i;
   int byte = *idx / 8;
   int size = ptr[byte++];
+
   res.len = size;
   res.data = (unsigned char *) xmalloc (size);
   res.len = size;
   res.data = (unsigned char *) xmalloc (size);
+
   for (i = 0; i < size; i++)
   for (i = 0; i < size; i++)
-    {
-      res.data[i] = ptr[byte++];
-    }
+    res.data[i] = ptr[byte++];
+
   return res;
 }
 
   return res;
 }
 
-int
-getINT (ptr, idx, size, max)
-     unsigned char *ptr;
-     int *idx;
-     int size;
-     int max;
+static int
+getINT (unsigned char *ptr, int *idx, int size, int max)
 {
   int n = 0;
   int byte = *idx / 8;
 
   if (byte >= max)
     {
 {
   int n = 0;
   int byte = *idx / 8;
 
   if (byte >= max)
     {
+      /* PR 17512: file: id:000001,src:000002,op:flip1,pos:45.  */
+      /* Prevent infinite loops re-reading beyond the end of the buffer.  */
+      fatal (_("ICE: getINT: Out of buffer space"));
       return 0;
     }
       return 0;
     }
+
   if (size == -2)
     size = addrsize;
   if (size == -2)
     size = addrsize;
+
   if (size == -1)
     size = 0;
   if (size == -1)
     size = 0;
+
   switch (size)
     {
     case 0:
   switch (size)
     {
     case 0:
@@ -201,17 +182,15 @@ getINT (ptr, idx, size, max)
       n = (ptr[byte + 0] << 24) + (ptr[byte + 1] << 16) + (ptr[byte + 2] << 8) + (ptr[byte + 3]);
       break;
     default:
       n = (ptr[byte + 0] << 24) + (ptr[byte + 1] << 16) + (ptr[byte + 2] << 8) + (ptr[byte + 3]);
       break;
     default:
-      abort ();
+      fatal (_("Unsupported read size: %d"), size);
     }
     }
+
   *idx += size * 8;
   return n;
 }
 
   *idx += size * 8;
   return n;
 }
 
-int
-getBITS (ptr, idx, size, max)
-     char *ptr;
-     int *idx;
-     int size, max;
+static int
+getBITS (unsigned char *ptr, int *idx, int size, int max)
 {
   int byte = *idx / 8;
   int bit = *idx % 8;
 {
   int byte = *idx / 8;
   int bit = *idx % 8;
@@ -225,42 +204,41 @@ getBITS (ptr, idx, size, max)
 }
 
 static void
 }
 
 static void
-itheader (name, code)
-     char *name;
-     int code;
+itheader (char *name, int icode)
 {
 {
-  printf ("\n%s 0x%02x\n", name, code);
+  printf ("\n%s 0x%02x\n", name, icode);
 }
 
 static int indent;
 }
 
 static int indent;
+
 static void
 static void
-p ()
+p (void)
 {
   int i;
 {
   int i;
+
   for (i = 0; i < indent; i++)
   for (i = 0; i < indent; i++)
-    {
-      printf ("| ");
-    }
+    printf ("| ");
+
   printf ("> ");
 }
 
 static void
   printf ("> ");
 }
 
 static void
-tabout ()
+tabout (void)
 {
   p ();
 }
 
 static void
 {
   p ();
 }
 
 static void
-pbarray (y)
-     barray *y;
+pbarray (barray *y)
 {
   int x;
 {
   int x;
+
   printf ("%d (", y->len);
   printf ("%d (", y->len);
+
   for (x = 0; x < y->len; x++)
   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");
 }
 
   printf (")\n");
 }
 
@@ -269,34 +247,33 @@ pbarray (y)
 
 #include "sysroff.c"
 
 
 #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
 
 #define IT_tr_CODE     0x7f
-void
-sysroff_swap_tr_in()
+
+static void
+sysroff_swap_tr_in (void)
 {
 {
-       char raw[255];
+  unsigned char raw[255];
 
 
-       memset(raw, 0, 255);
-       fillup(raw);
+  memset (raw, 0, 255);
+  fillup (raw);
 }
 
 }
 
-void
-sysroff_print_tr_out()
+static void
+sysroff_print_tr_out (void)
 {
 {
-       itheader("tr", IT_tr_CODE);
+  itheader ("tr", IT_tr_CODE);
 }
 
 static int
 }
 
 static int
-getone (type)
-     int type;
+getone (int type)
 {
   int c = getc (file);
 {
   int c = getc (file);
+
   code = c;
 
   if ((c & 0x7f) != type)
   code = c;
 
   if ((c & 0x7f) != type)
@@ -314,6 +291,7 @@ getone (type)
        sysroff_print_cs_out (&dummy);
       }
       break;
        sysroff_print_cs_out (&dummy);
       }
       break;
+
     case IT_dln_CODE:
       {
        struct IT_dln dummy;
     case IT_dln_CODE:
       {
        struct IT_dln dummy;
@@ -321,6 +299,7 @@ getone (type)
        sysroff_print_dln_out (&dummy);
       }
       break;
        sysroff_print_dln_out (&dummy);
       }
       break;
+
     case IT_hd_CODE:
       {
        struct IT_hd dummy;
     case IT_hd_CODE:
       {
        struct IT_hd dummy;
@@ -329,6 +308,7 @@ getone (type)
        sysroff_print_hd_out (&dummy);
       }
       break;
        sysroff_print_hd_out (&dummy);
       }
       break;
+
     case IT_dar_CODE:
       {
        struct IT_dar dummy;
     case IT_dar_CODE:
       {
        struct IT_dar dummy;
@@ -336,6 +316,7 @@ getone (type)
        sysroff_print_dar_out (&dummy);
       }
       break;
        sysroff_print_dar_out (&dummy);
       }
       break;
+
     case IT_dsy_CODE:
       {
        struct IT_dsy dummy;
     case IT_dsy_CODE:
       {
        struct IT_dsy dummy;
@@ -343,6 +324,7 @@ getone (type)
        sysroff_print_dsy_out (&dummy);
       }
       break;
        sysroff_print_dsy_out (&dummy);
       }
       break;
+
     case IT_dfp_CODE:
       {
        struct IT_dfp dummy;
     case IT_dfp_CODE:
       {
        struct IT_dfp dummy;
@@ -350,6 +332,7 @@ getone (type)
        sysroff_print_dfp_out (&dummy);
       }
       break;
        sysroff_print_dfp_out (&dummy);
       }
       break;
+
     case IT_dso_CODE:
       {
        struct IT_dso dummy;
     case IT_dso_CODE:
       {
        struct IT_dso dummy;
@@ -357,6 +340,7 @@ getone (type)
        sysroff_print_dso_out (&dummy);
       }
       break;
        sysroff_print_dso_out (&dummy);
       }
       break;
+
     case IT_dpt_CODE:
       {
        struct IT_dpt dummy;
     case IT_dpt_CODE:
       {
        struct IT_dpt dummy;
@@ -364,6 +348,7 @@ getone (type)
        sysroff_print_dpt_out (&dummy);
       }
       break;
        sysroff_print_dpt_out (&dummy);
       }
       break;
+
     case IT_den_CODE:
       {
        struct IT_den dummy;
     case IT_den_CODE:
       {
        struct IT_den dummy;
@@ -371,6 +356,7 @@ getone (type)
        sysroff_print_den_out (&dummy);
       }
       break;
        sysroff_print_den_out (&dummy);
       }
       break;
+
     case IT_dbt_CODE:
       {
        struct IT_dbt dummy;
     case IT_dbt_CODE:
       {
        struct IT_dbt dummy;
@@ -378,6 +364,7 @@ getone (type)
        sysroff_print_dbt_out (&dummy);
       }
       break;
        sysroff_print_dbt_out (&dummy);
       }
       break;
+
     case IT_dty_CODE:
       {
        struct IT_dty dummy;
     case IT_dty_CODE:
       {
        struct IT_dty dummy;
@@ -385,6 +372,7 @@ getone (type)
        sysroff_print_dty_out (&dummy);
       }
       break;
        sysroff_print_dty_out (&dummy);
       }
       break;
+
     case IT_un_CODE:
       {
        struct IT_un dummy;
     case IT_un_CODE:
       {
        struct IT_un dummy;
@@ -392,6 +380,7 @@ getone (type)
        sysroff_print_un_out (&dummy);
       }
       break;
        sysroff_print_un_out (&dummy);
       }
       break;
+
     case IT_sc_CODE:
       {
        struct IT_sc dummy;
     case IT_sc_CODE:
       {
        struct IT_sc dummy;
@@ -399,6 +388,7 @@ getone (type)
        sysroff_print_sc_out (&dummy);
       }
       break;
        sysroff_print_sc_out (&dummy);
       }
       break;
+
     case IT_er_CODE:
       {
        struct IT_er dummy;
     case IT_er_CODE:
       {
        struct IT_er dummy;
@@ -406,6 +396,7 @@ getone (type)
        sysroff_print_er_out (&dummy);
       }
       break;
        sysroff_print_er_out (&dummy);
       }
       break;
+
     case IT_ed_CODE:
       {
        struct IT_ed dummy;
     case IT_ed_CODE:
       {
        struct IT_ed dummy;
@@ -413,6 +404,7 @@ getone (type)
        sysroff_print_ed_out (&dummy);
       }
       break;
        sysroff_print_ed_out (&dummy);
       }
       break;
+
     case IT_sh_CODE:
       {
        struct IT_sh dummy;
     case IT_sh_CODE:
       {
        struct IT_sh dummy;
@@ -420,6 +412,7 @@ getone (type)
        sysroff_print_sh_out (&dummy);
       }
       break;
        sysroff_print_sh_out (&dummy);
       }
       break;
+
     case IT_ob_CODE:
       {
        struct IT_ob dummy;
     case IT_ob_CODE:
       {
        struct IT_ob dummy;
@@ -427,6 +420,7 @@ getone (type)
        sysroff_print_ob_out (&dummy);
       }
       break;
        sysroff_print_ob_out (&dummy);
       }
       break;
+
     case IT_rl_CODE:
       {
        struct IT_rl dummy;
     case IT_rl_CODE:
       {
        struct IT_rl dummy;
@@ -434,6 +428,7 @@ getone (type)
        sysroff_print_rl_out (&dummy);
       }
       break;
        sysroff_print_rl_out (&dummy);
       }
       break;
+
     case IT_du_CODE:
       {
        struct IT_du dummy;
     case IT_du_CODE:
       {
        struct IT_du dummy;
@@ -442,6 +437,7 @@ getone (type)
        sysroff_print_du_out (&dummy);
       }
       break;
        sysroff_print_du_out (&dummy);
       }
       break;
+
     case IT_dus_CODE:
       {
        struct IT_dus dummy;
     case IT_dus_CODE:
       {
        struct IT_dus dummy;
@@ -449,6 +445,7 @@ getone (type)
        sysroff_print_dus_out (&dummy);
       }
       break;
        sysroff_print_dus_out (&dummy);
       }
       break;
+
     case IT_dul_CODE:
       {
        struct IT_dul dummy;
     case IT_dul_CODE:
       {
        struct IT_dul dummy;
@@ -456,6 +453,7 @@ getone (type)
        sysroff_print_dul_out (&dummy);
       }
       break;
        sysroff_print_dul_out (&dummy);
       }
       break;
+
     case IT_dss_CODE:
       {
        struct IT_dss dummy;
     case IT_dss_CODE:
       {
        struct IT_dss dummy;
@@ -463,6 +461,7 @@ getone (type)
        sysroff_print_dss_out (&dummy);
       }
       break;
        sysroff_print_dss_out (&dummy);
       }
       break;
+
     case IT_hs_CODE:
       {
        struct IT_hs dummy;
     case IT_hs_CODE:
       {
        struct IT_hs dummy;
@@ -470,6 +469,7 @@ getone (type)
        sysroff_print_hs_out (&dummy);
       }
       break;
        sysroff_print_hs_out (&dummy);
       }
       break;
+
     case IT_dps_CODE:
       {
        struct IT_dps dummy;
     case IT_dps_CODE:
       {
        struct IT_dps dummy;
@@ -477,104 +477,60 @@ getone (type)
        sysroff_print_dps_out (&dummy);
       }
       break;
        sysroff_print_dps_out (&dummy);
       }
       break;
+
     case IT_tr_CODE:
     case IT_tr_CODE:
-      {
-       sysroff_swap_tr_in ();
-       sysroff_print_tr_out ();
-      }
+      sysroff_swap_tr_in ();
+      sysroff_print_tr_out ();
       break;
       break;
+
     case IT_dds_CODE:
       {
        struct IT_dds dummy;
     case IT_dds_CODE:
       {
        struct IT_dds dummy;
+
        sysroff_swap_dds_in (&dummy);
        sysroff_print_dds_out (&dummy);
       }
       break;
        sysroff_swap_dds_in (&dummy);
        sysroff_print_dds_out (&dummy);
       }
       break;
+
     default:
     default:
-      printf ("GOT A %x\n", c);
+      printf (_("GOT A %x\n"), c);
       return 0;
       break;
     }
       return 0;
       break;
     }
+
   return 1;
 }
 
 static int
   return 1;
 }
 
 static int
-opt (x)
-     int x;
+opt (int x)
 {
   return getone (x);
 }
 
 {
   return getone (x);
 }
 
-#if 0
-
-/* This is no longer used.  */
-
-static void
-unit_info_list ()
-{
-  while (opt (IT_un_CODE))
-    {
-      getone (IT_us_CODE);
-
-      while (getone (IT_sc_CODE))
-       getone (IT_ss_CODE);
-
-      while (getone (IT_er_CODE))
-       ;
-
-      while (getone (IT_ed_CODE))
-       ;
-    }
-}
-
-#endif
-
-#if 0
-
-/* This is no longer used.  */
-
-static void
-object_body_list ()
-{
-  while (getone (IT_sh_CODE))
-    {
-      while (getone (IT_ob_CODE))
-       ;
-      while (getone (IT_rl_CODE))
-       ;
-    }
-}
-
-#endif
-
 static void
 static void
-must (x)
-     int x;
+must (int x)
 {
   if (!getone (x))
 {
   if (!getone (x))
-    {
-      printf ("WANTED %x!!\n", x);
-    }
+    printf (_("WANTED %x!!\n"), x);
 }
 
 static void
 }
 
 static void
-tab (i, s)
-     int i;
-     char *s;
+tab (int i, char *s)
 {
   indent += i;
 {
   indent += i;
+
   if (s)
     {
       p ();
   if (s)
     {
       p ();
-      printf (s);
-      printf ("\n");
+      puts (s);
     }
 }
 
 static void
     }
 }
 
 static void
-dump_symbol_info ()
+dump_symbol_info (void)
 {
 {
-  tab (1, "SYMBOL INFO");
+  tab (1, _("SYMBOL INFO"));
+
   while (opt (IT_dsy_CODE))
     {
       if (opt (IT_dty_CODE))
   while (opt (IT_dsy_CODE))
     {
       if (opt (IT_dty_CODE))
@@ -584,13 +540,15 @@ dump_symbol_info ()
          must (IT_dty_CODE);
        }
     }
          must (IT_dty_CODE);
        }
     }
+
   tab (-1, "");
 }
 
 static void
   tab (-1, "");
 }
 
 static void
-derived_type ()
+derived_type (void)
 {
 {
-  tab (1, "DERIVED TYPE");
+  tab (1, _("DERIVED TYPE"));
+
   while (1)
     {
       if (opt (IT_dpp_CODE))
   while (1)
     {
       if (opt (IT_dpp_CODE))
@@ -640,73 +598,25 @@ derived_type ()
   tab (-1, "");
 }
 
   tab (-1, "");
 }
 
-#if 0
-
-/* This is no longer used.  */
-
 static void
 static void
-program_structure ()
-{
-  tab (1, "PROGRAM STRUCTURE");
-  while (opt (IT_dps_CODE))
-    {
-      must (IT_dso_CODE);
-      opt (IT_dss_CODE);
-      dump_symbol_info ();
-      must (IT_dps_CODE);
-    }
-  tab (-1, "");
-}
-
-#endif
-
-#if 0
-
-/* This is no longer used.  */
-
-static void
-debug_list ()
-{
-  tab (1, "DEBUG LIST");
-
-  must (IT_du_CODE);
-  opt (IT_dus_CODE);
-  program_structure ();
-  must (IT_dln_CODE);
-
-  tab (-1, "");
-}
-
-#endif
-
-static void
-module ()
+module (void)
 {
   int c = 0;
   int l = 0;
 
 {
   int c = 0;
   int l = 0;
 
-  tab (1, "MODULE***\n");
+  tab (1, _("MODULE***\n"));
 
   do
     {
       c = getc (file);
 
   do
     {
       c = getc (file);
+      if (c == EOF)
+       break;
       ungetc (c, file);
 
       c &= 0x7f;
     }
   while (getone (c) && c != IT_tr_CODE);
 
       ungetc (c, file);
 
       c &= 0x7f;
     }
   while (getone (c) && c != IT_tr_CODE);
 
-#if 0
-  must (IT_cs_CODE);
-  must (IT_hd_CODE);
-  opt (IT_hs_CODE);
-
-  unit_info_list ();
-  object_body_list ();
-  debug_list ();
-
-  must (IT_tr_CODE);
-#endif
   tab (-1, "");
 
   c = getc (file);
   tab (-1, "");
 
   c = getc (file);
@@ -723,32 +633,25 @@ module ()
     }
 }
 
     }
 }
 
-char *program_name;
-
-static void
-show_usage (file, status)
-     FILE *file;
-     int status;
+ATTRIBUTE_NORETURN static void
+show_usage (FILE *ffile, int status)
 {
 {
-  fprintf (file, _("Usage: %s [-hV] in-file\n"), program_name);
+  fprintf (ffile, _("Usage: %s [option(s)] in-file\n"), program_name);
+  fprintf (ffile, _("Print a human readable interpretation of a SYSROFF object file\n"));
+  fprintf (ffile, _(" The options are:\n\
+  -h --help        Display this information\n\
+  -v --version     Print the program's version number\n"));
+
+  if (REPORT_BUGS_TO[0] && status == 0)
+    fprintf (ffile, _("Report bugs to %s\n"), REPORT_BUGS_TO);
   exit (status);
 }
 
   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
 int
-main (ac, av)
-     int ac;
-     char **av;
+main (int ac, char **av)
 {
   char *input_file = NULL;
 {
   char *input_file = NULL;
-  int opt;
+  int option;
   static struct option long_options[] =
   {
     {"help", no_argument, 0, 'h'},
   static struct option long_options[] =
   {
     {"help", no_argument, 0, 'h'},
@@ -767,14 +670,19 @@ main (ac, av)
 
   program_name = av[0];
   xmalloc_set_program_name (program_name);
 
   program_name = av[0];
   xmalloc_set_program_name (program_name);
+  bfd_set_error_program_name (program_name);
+
+  expandargv (&ac, &av);
 
 
-  while ((opt = getopt_long (ac, av, "hV", long_options, (int *) NULL)) != EOF)
+  while ((option = getopt_long (ac, av, "HhVv", long_options, (int *) NULL)) != EOF)
     {
     {
-      switch (opt)
+      switch (option)
        {
        {
+       case 'H':
        case 'h':
        case 'h':
-         show_help ();
+         show_usage (stdout, 0);
          /*NOTREACHED*/
          /*NOTREACHED*/
+       case 'v':
        case 'V':
          print_version ("sysdump");
          exit (0);
        case 'V':
          print_version ("sysdump");
          exit (0);
@@ -790,20 +698,15 @@ main (ac, av)
   /* The input and output files may be named on the command line.  */
 
   if (optind < ac)
   /* 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)
 
   if (!input_file)
-    {
-      fatal (_("no input file specified"));
-    }
+    fatal (_("no input file specified"));
 
   file = fopen (input_file, FOPEN_RB);
 
   file = fopen (input_file, FOPEN_RB);
+
   if (!file)
   if (!file)
-    {
-      fatal (_("cannot open input file %s"), input_file);
-    }
+    fatal (_("cannot open input file %s"), input_file);
 
   module ();
   return 0;
 
   module ();
   return 0;
This page took 0.032327 seconds and 4 git commands to generate.