summaryrefslogtreecommitdiff
path: root/binutils/strings.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2000-05-26 13:11:57 +0000
committerAlan Modra <amodra@bigpond.net.au>2000-05-26 13:11:57 +0000
commit0ec238fa07cba008eba87c85d917d849fcb4c492 (patch)
tree63de07d189bc1be9db1080c93c385aab223e0ede /binutils/strings.c
parent20b373ea5e261308d08c71629f0c6ac2b652b0ea (diff)
downloadbinutils-redhat-0ec238fa07cba008eba87c85d917d849fcb4c492.tar.gz
Eli Zaretskii's DOSish file name patches.
Diffstat (limited to 'binutils/strings.c')
-rw-r--r--binutils/strings.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/binutils/strings.c b/binutils/strings.c
index ab845b04d4..54f29e43ab 100644
--- a/binutils/strings.c
+++ b/binutils/strings.c
@@ -59,6 +59,23 @@
#include "bucomm.h"
#include "libiberty.h"
+/* Some platforms need to put stdin into binary mode, to read
+ binary files. */
+#ifdef HAVE_SETMODE
+#ifndef O_BINARY
+#ifdef _O_BINARY
+#define O_BINARY _O_BINARY
+#define setmode _setmode
+#else
+#define O_BINARY 0
+#endif
+#endif
+#if O_BINARY
+#include <io.h>
+#define SET_BINARY(f) do { if (!isatty(f)) setmode(f,O_BINARY); } while (0)
+#endif
+#endif
+
#ifdef isascii
#define isgraphic(c) (isascii (c) && isprint (c))
#else
@@ -218,6 +235,9 @@ main (argc, argv)
if (optind >= argc)
{
datasection_only = false;
+#ifdef SET_BINARY
+ SET_BINARY (fileno (stdin));
+#endif
print_strings ("{standard input}", stdin, 0, 0, 0, (char *) NULL);
files_given = true;
}