aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1999-06-12 16:04:07 +0000
committerIan Lance Taylor <ian@airs.com>1999-06-12 16:04:07 +0000
commit18226413dfb04765a0510fabef48e307ea1eb2ea (patch)
treebdccaa0c83994d824ab39e231cfb1e3d2ada9bf0 /binutils/rename.c
parent Based on patch from H. Peter Anvin <hpa@transmeta.com>: (diff)
downloadbinutils-gdb-18226413dfb04765a0510fabef48e307ea1eb2ea.tar.gz
binutils-gdb-18226413dfb04765a0510fabef48e307ea1eb2ea.tar.bz2
binutils-gdb-18226413dfb04765a0510fabef48e307ea1eb2ea.zip
* rename.c (O_BINARY): Define as 0 if not defined.
(simple_copy): Open files with O_BINARY.
Diffstat (limited to 'binutils/rename.c')
-rw-r--r--binutils/rename.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/binutils/rename.c b/binutils/rename.c
index f8314fbd095..78ea9fd6b20 100644
--- a/binutils/rename.c
+++ b/binutils/rename.c
@@ -31,6 +31,12 @@
#endif /* HAVE_UTIMES */
#endif /* ! HAVE_GOOD_UTIME_H */
+/* We need to open the file in binary modes on system where that makes
+ a difference. */
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
static int simple_copy PARAMS ((const char *, const char *));
/* The number of bytes to copy at once. */
@@ -48,10 +54,14 @@ simple_copy (from, to)
int saved;
char buf[COPY_BUF];
- fromfd = open (from, O_RDONLY);
+ fromfd = open (from, O_RDONLY | O_BINARY);
if (fromfd < 0)
return -1;
+#ifdef O_CREAT
+ tofd = open (to, O_CREAT | O_WRONLY | O_TRUNC | O_BINARY, 0777);
+#else
tofd = creat (to, 0777);
+#endif
if (tofd < 0)
{
saved = errno;