diff options
author | Alan Modra <amodra@gmail.com> | 2007-02-27 08:31:46 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2007-02-27 08:31:46 +0000 |
commit | cd14b9662a90756a8dc0f465ae1e16c6d3b216da (patch) | |
tree | b83ca5ff9817a8a7c71e511a34df21e8dc95a923 /binutils/bin2c.c | |
parent | 7a8757b3194d57d783bccfe2b1b206990d6396b6 (diff) | |
download | binutils-cd14b9662a90756a8dc0f465ae1e16c6d3b216da.zip binutils-cd14b9662a90756a8dc0f465ae1e16c6d3b216da.tar.gz binutils-cd14b9662a90756a8dc0f465ae1e16c6d3b216da.tar.bz2 |
* bin2c.c: New file.
* Makefile.am (EXTRA_PROGRAMS): Add bin2c.
(CFILES): Add bin2c.c.
(bin2c_SOURCES): Define.
(bin2c.o): Dependencies from "make dep-am".
* configure.in (BUILD_MISC): Add bin2c.
* version.c: Update year.
* po/POTFILES.in: Regenerate.
* Makefile.in: Regenerate.
* configure: Regenerate.
Diffstat (limited to 'binutils/bin2c.c')
-rw-r--r-- | binutils/bin2c.c | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/binutils/bin2c.c b/binutils/bin2c.c new file mode 100644 index 0000000..4f58a73 --- /dev/null +++ b/binutils/bin2c.c @@ -0,0 +1,104 @@ +/* bin2c.c -- dump binary file in hex format + Copyright 2007 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 + 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. + + 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., 51 Franklin Street - Fifth Floor, Boston, MA + 02110-1301, USA. */ + +#include "bfd.h" +#include "bucomm.h" + +#if !defined O_BINARY && defined _O_BINARY + /* For MSC-compatible compilers. */ +# define O_BINARY _O_BINARY +# define O_TEXT _O_TEXT +#endif + +#ifdef __BEOS__ + /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. */ +# undef O_BINARY +# undef O_TEXT +#endif + +#if O_BINARY +# ifndef __DJGPP__ +# define setmode _setmode +# define fileno(_fp) _fileno (_fp) +# endif /* not DJGPP */ +# define SET_BINARY(_f) \ + do { if (!isatty (_f)) setmode (_f, O_BINARY); } while (0) +#else +# define SET_BINARY(f) (void) 0 +# define O_BINARY 0 +# define O_TEXT 0 +#endif /* O_BINARY */ + +int +main (int argc, char *argv[]) +{ + int c; + int i; + +#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES) + setlocale (LC_MESSAGES, ""); +#endif +#if defined (HAVE_SETLOCALE) + setlocale (LC_CTYPE, ""); +#endif + bindtextdomain (PACKAGE, LOCALEDIR); + textdomain (PACKAGE); + + if (argc != 1) + { + int ishelp = 0; + int isvers = 0; + FILE *stream; + + if (argc == 2 && argv[1][0] == '-') + { + const char *opt = &argv[1][1]; + if (*opt == '-') + ++opt; + ishelp = *opt == 'h' || *opt == 'H'; + isvers = *opt == 'v' || *opt == 'V'; + } + + if (isvers) + print_version ("bin2c"); + + stream = ishelp ? stdout : stderr; + fprintf (stream, _("Usage: %s < input_file > output_file\n"), argv[0]); + fprintf (stream, _("Prints bytes from stdin in hex format.\n")); + exit (!ishelp); + } + + SET_BINARY (fileno (stdin)); + + i = 0; + while ((c = getc (stdin)) != EOF) + { + printf ("0x%02x,", c); + if (++i == 16) + { + printf ("\n"); + i = 0; + } + } + if (i != 0) + printf ("\n"); + + exit (0); +} |