Fix problem building PE DLL test generator with compilers that do not support c99...
[external/binutils.git] / binutils / bin2c.c
1 /* bin2c.c -- dump binary file in hex format
2    Copyright (C) 2007-2019 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
25 int
26 main (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 }