Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/syscalls.cc')
-rw-r--r--winsup/cygwin/syscalls.cc12
1 files changed, 4 insertions, 8 deletions
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index 3211ab934..191b3a91c 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -1651,21 +1651,18 @@ setmode (int fd, int mode)
else
res = 0;
- if (mode & O_BINARY)
+ if (!mode)
+ p->reset_to_open_binmode ();
+ else if (mode & O_BINARY)
{
p->set_w_binary (1);
p->set_r_binary (1);
}
- else if (mode & O_TEXT)
+ else
{
p->set_w_binary (0);
p->set_r_binary (0);
}
- else
- {
- p->clear_w_binary ();
- p->clear_r_binary ();
- }
if (_cygwin_istext_for_stdio (fd))
setmode_mode = O_TEXT;
@@ -1677,7 +1674,6 @@ setmode (int fd, int mode)
syscall_printf ("setmode (%d<%s>, %s) returns %s\n", fd, p->get_name (),
mode & O_TEXT ? "text" : "binary",
res & O_TEXT ? "text" : "binary");
-
return res;
}