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:
authorChristopher Faylor <me@cgf.cx>2002-10-18 05:28:48 +0400
committerChristopher Faylor <me@cgf.cx>2002-10-18 05:28:48 +0400
commitabb58a6d3f5af3ab5badea554280d36113fa1349 (patch)
tree3cb2231d32b31e89580d52880df32e9be0187df3
parentfef1edbc9a4ca63fdb801f78086d442bce1da40f (diff)
* dtable.cc (dtable::init_std_file_from_handle): Force "devices" to always be
in binary mode. Temporary fix until ssh is rebuilt?
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/dtable.cc16
2 files changed, 16 insertions, 5 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index f51f0a448..28fdf96df 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,10 @@
2002-10-17 Christopher Faylor <cgf@redhat.com>
+ * dtable.cc (dtable::init_std_file_from_handle): Force "devices" to
+ always be in binary mode. Temporary fix until ssh is rebuilt?
+
+2002-10-17 Christopher Faylor <cgf@redhat.com>
+
* dtable.cc (dtable::set_file_pointers_for_exec): New function.
* dtable.h (dtable::set_file_pointers_for_exec): Declare new function.
* spawn.cc (spawn_guts): Call dtable::set_file_pointers_for_exec to set
diff --git a/winsup/cygwin/dtable.cc b/winsup/cygwin/dtable.cc
index 7bbfbbfb7..9c363aaa5 100644
--- a/winsup/cygwin/dtable.cc
+++ b/winsup/cygwin/dtable.cc
@@ -220,6 +220,7 @@ dtable::init_std_file_from_handle (int fd, HANDLE handle)
struct sockaddr sa;
int sal = sizeof (sa);
DCB dcb;
+ unsigned bin = O_BINARY;
first_fd_for_open = 0;
@@ -259,7 +260,10 @@ dtable::init_std_file_from_handle (int fd, HANDLE handle)
else if (GetCommState (handle, &dcb))
name = "/dev/ttyS0"; // FIXME - determine correct device
else
- name = handle_to_fn (handle, (char *) alloca (MAX_PATH + 100));
+ {
+ name = handle_to_fn (handle, (char *) alloca (MAX_PATH + 100));
+ bin = 0;
+ }
}
if (!name)
@@ -267,11 +271,13 @@ dtable::init_std_file_from_handle (int fd, HANDLE handle)
else
{
path_conv pc;
- unsigned bin;
fhandler_base *fh = build_fhandler_from_name (fd, name, handle, pc);
- bin = fh->get_default_fmode (O_RDWR);
- if (!bin && name != unknown_file)
- bin = pc.binmode ();
+ if (!bin)
+ {
+ bin = fh->get_default_fmode (O_RDWR);
+ if (!bin && name != unknown_file)
+ bin = pc.binmode ();
+ }
fh->init (handle, GENERIC_READ | GENERIC_WRITE, bin);
set_std_handle (fd);