1/* bin2c.c -- dump binary file in hex format
2   Copyright (C) 2007-2017 Free Software Foundation, Inc.
3
4   This file is part of GNU Binutils.
5
6   This program is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 3 of the License, or
9   (at your option) any later version.
10
11   This program is distributed in the hope that it will be useful,
12   but WITHOUT ANY WARRANTY; without even the implied warranty of
13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   GNU General Public License for more details.
15
16   You should have received a copy of the GNU General Public License
17   along with this program; if not, write to the Free Software
18   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
19   02110-1301, USA.  */
20
21#include <stdio.h>
22#include <stdlib.h>
23#include "binary-io.h"
24
25int
26main (int argc, char *argv[])
27{
28  int c;
29  int i;
30
31  if (argc != 1)
32    {
33      int ishelp = 0;
34      FILE *stream;
35
36      if (argc == 2 && argv[1][0] == '-')
37	{
38	  const char *opt = &argv[1][1];
39	  if (*opt == '-')
40	    ++opt;
41	  ishelp = *opt == 'h' || *opt == 'H';
42	}
43
44      stream = ishelp ? stdout : stderr;
45      fprintf (stream, "Usage: %s < input_file > output_file\n", argv[0]);
46      fprintf (stream, "Prints bytes from stdin in hex format.\n");
47      exit (!ishelp);
48    }
49
50  SET_BINARY (fileno (stdin));
51
52  i = 0;
53  while ((c = getc (stdin)) != EOF)
54    {
55      printf ("0x%02x,", c);
56      if (++i == 16)
57	{
58	  printf ("\n");
59	  i = 0;
60	}
61    }
62  if (i != 0)
63    printf ("\n");
64
65  exit (0);
66}
67