From 1bc9effd28c85148d788043f3d99c657e9dda3d4 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Mon, 1 Jul 2002 19:03:26 +0000 Subject: * fhandler_clipboard.c (fhandler_dev_clipboard::open): Force text mode. * fhandler_console.cc (fhandler_console::open): *Really* force binary mode rather than make it optional. * fhandler_proc.cc (fhandler_proc::open): Ditto. * fhandler_process.cc (fhandler_process::open): Ditto. * fhandler_random.cc (fhandler_dev_random::fhandler_dev_random): Ditto. * fhandler_raw.cc (fhandler_dev_raw::open): Ditto. * fhandler_registry.cc (fhandler_registry::open): Ditto. * fhandler_tty.cc (fhandler_tty_slave::open): Ditto. * fhandler_virtual.cc (fhandler_virtual::open): Ditto. * fhandler_windows.cc (fhandler_windows::open): Ditto. * fhandler_zero.cc (fhandler_dev_zero::open): Ditto. * net.cc (fdsock): Ditto. * path.cc (set_flags): Add more debugging. --- winsup/cygwin/ChangeLog | 17 +++++++++++++++++ winsup/cygwin/fhandler_clipboard.cc | 2 +- winsup/cygwin/fhandler_console.cc | 2 +- winsup/cygwin/fhandler_proc.cc | 2 +- winsup/cygwin/fhandler_process.cc | 2 +- winsup/cygwin/fhandler_random.cc | 2 +- winsup/cygwin/fhandler_raw.cc | 2 +- winsup/cygwin/fhandler_registry.cc | 2 +- winsup/cygwin/fhandler_tty.cc | 4 ++-- winsup/cygwin/fhandler_virtual.cc | 2 +- winsup/cygwin/fhandler_windows.cc | 2 +- winsup/cygwin/fhandler_zero.cc | 2 +- winsup/cygwin/net.cc | 2 +- winsup/cygwin/path.cc | 10 +++++++++- 14 files changed, 39 insertions(+), 14 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 2aa1a05fd..7049bcad4 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,20 @@ +2002-07-01 Christopher Faylor + + * fhandler_clipboard.c (fhandler_dev_clipboard::open): Force text mode. + * fhandler_console.cc (fhandler_console::open): *Really* force binary + mode rather than make it optional. + * fhandler_proc.cc (fhandler_proc::open): Ditto. + * fhandler_process.cc (fhandler_process::open): Ditto. + * fhandler_random.cc (fhandler_dev_random::fhandler_dev_random): Ditto. + * fhandler_raw.cc (fhandler_dev_raw::open): Ditto. + * fhandler_registry.cc (fhandler_registry::open): Ditto. + * fhandler_tty.cc (fhandler_tty_slave::open): Ditto. + * fhandler_virtual.cc (fhandler_virtual::open): Ditto. + * fhandler_windows.cc (fhandler_windows::open): Ditto. + * fhandler_zero.cc (fhandler_dev_zero::open): Ditto. + * net.cc (fdsock): Ditto. + * path.cc (set_flags): Add more debugging. + 2002-07-01 Christopher Faylor * debug.cc (threads): Avoid initialization. diff --git a/winsup/cygwin/fhandler_clipboard.cc b/winsup/cygwin/fhandler_clipboard.cc index e3b26c9fa..b1c61b9d3 100644 --- a/winsup/cygwin/fhandler_clipboard.cc +++ b/winsup/cygwin/fhandler_clipboard.cc @@ -65,7 +65,7 @@ fhandler_dev_clipboard::dup (fhandler_base * child) int fhandler_dev_clipboard::open (path_conv *, int flags, mode_t) { - set_flags (flags, O_TEXT); + set_flags (flags | O_TEXT); eof = false; pos = 0; if (membuffer) diff --git a/winsup/cygwin/fhandler_console.cc b/winsup/cygwin/fhandler_console.cc index 458c5a337..76c8065d3 100644 --- a/winsup/cygwin/fhandler_console.cc +++ b/winsup/cygwin/fhandler_console.cc @@ -538,7 +538,7 @@ fhandler_console::open (path_conv *, int flags, mode_t) set_io_handle (INVALID_HANDLE_VALUE); set_output_handle (INVALID_HANDLE_VALUE); - set_flags (flags & ~O_TEXT, O_BINARY); + set_flags ((flags & ~O_TEXT) | O_BINARY); /* Open the input handle as handle_ */ h = CreateFileA ("CONIN$", GENERIC_READ|GENERIC_WRITE, diff --git a/winsup/cygwin/fhandler_proc.cc b/winsup/cygwin/fhandler_proc.cc index 65accd2e1..fc753312e 100644 --- a/winsup/cygwin/fhandler_proc.cc +++ b/winsup/cygwin/fhandler_proc.cc @@ -300,7 +300,7 @@ fhandler_proc::open (path_conv *pc, int flags, mode_t mode) success: res = 1; - set_flags (flags & ~O_TEXT, O_BINARY); + set_flags ((flags & ~O_TEXT) | O_BINARY); set_open_status (); out: syscall_printf ("%d = fhandler_proc::open (%p, %d)", res, flags, mode); diff --git a/winsup/cygwin/fhandler_process.cc b/winsup/cygwin/fhandler_process.cc index a0ba4af90..2c5eae720 100644 --- a/winsup/cygwin/fhandler_process.cc +++ b/winsup/cygwin/fhandler_process.cc @@ -237,7 +237,7 @@ fhandler_process::open (path_conv *pc, int flags, mode_t mode) success: res = 1; - set_flags (flags & ~O_TEXT, O_BINARY); + set_flags ((flags & ~O_TEXT) | O_BINARY); set_open_status (); out: syscall_printf ("%d = fhandler_proc::open (%p, %d)", res, flags, mode); diff --git a/winsup/cygwin/fhandler_random.cc b/winsup/cygwin/fhandler_random.cc index 42481d6eb..f6edeb193 100644 --- a/winsup/cygwin/fhandler_random.cc +++ b/winsup/cygwin/fhandler_random.cc @@ -31,7 +31,7 @@ fhandler_dev_random::fhandler_dev_random (int nunit) int fhandler_dev_random::open (path_conv *, int flags, mode_t) { - set_flags (flags & ~O_TEXT, O_BINARY); + set_flags ((flags & ~O_TEXT) | O_BINARY); set_open_status (); return 1; } diff --git a/winsup/cygwin/fhandler_raw.cc b/winsup/cygwin/fhandler_raw.cc index c692214ae..2ce43c363 100644 --- a/winsup/cygwin/fhandler_raw.cc +++ b/winsup/cygwin/fhandler_raw.cc @@ -175,7 +175,7 @@ fhandler_dev_raw::open (path_conv *real_path, int flags, mode_t) } set_io_handle (h); - set_flags (flags & ~O_TEXT, O_BINARY); + set_flags ((flags & ~O_TEXT) | O_BINARY); if (devbufsiz > 1L) devbuf = new char [devbufsiz]; diff --git a/winsup/cygwin/fhandler_registry.cc b/winsup/cygwin/fhandler_registry.cc index 94220c62a..f8808dfe4 100644 --- a/winsup/cygwin/fhandler_registry.cc +++ b/winsup/cygwin/fhandler_registry.cc @@ -480,7 +480,7 @@ fhandler_registry::open (path_conv *pc, int flags, mode_t mode) success: res = 1; - set_flags (flags & ~O_TEXT, O_BINARY); + set_flags ((flags & ~O_TEXT) | O_BINARY); set_open_status (); out: if (hKey != (HKEY) INVALID_HANDLE_VALUE) diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc index 758d6eaec..918b43493 100644 --- a/winsup/cygwin/fhandler_tty.cc +++ b/winsup/cygwin/fhandler_tty.cc @@ -454,7 +454,7 @@ fhandler_tty_slave::open (path_conv *, int flags, mode_t) attach_tty (ttynum); tc->set_ctty (ttynum, flags); - set_flags (flags & ~O_TEXT, O_BINARY); + set_flags ((flags & ~O_TEXT) | O_BINARY); /* Create synchronisation events */ char buf[40]; @@ -1006,7 +1006,7 @@ fhandler_pty_master::open (path_conv *, int flags, mode_t) cygwin_shared->tty[ttynum]->common_init (this); inuse = get_ttyp ()->create_inuse (TTY_MASTER_ALIVE); - set_flags (flags & ~O_TEXT, O_BINARY); + set_flags ((flags & ~O_TEXT) | O_BINARY); set_open_status (); termios_printf ("opened pty master tty%d<%p>", ttynum, this); diff --git a/winsup/cygwin/fhandler_virtual.cc b/winsup/cygwin/fhandler_virtual.cc index a05543426..fb1ed7d39 100644 --- a/winsup/cygwin/fhandler_virtual.cc +++ b/winsup/cygwin/fhandler_virtual.cc @@ -207,7 +207,7 @@ fhandler_virtual::open (path_conv *, int flags, mode_t mode) set_execable_p (not_executable); set_socket_p (false); - set_flags (flags & ~O_TEXT, O_BINARY); + set_flags ((flags & ~O_TEXT) | O_BINARY); set_nohandle (true); diff --git a/winsup/cygwin/fhandler_windows.cc b/winsup/cygwin/fhandler_windows.cc index 591f2c704..ac1fe044d 100644 --- a/winsup/cygwin/fhandler_windows.cc +++ b/winsup/cygwin/fhandler_windows.cc @@ -54,7 +54,7 @@ fhandler_windows::fhandler_windows () int fhandler_windows::open (path_conv *, int flags, mode_t) { - set_flags (flags & ~O_TEXT, O_BINARY); + set_flags ((flags & ~O_TEXT) | O_BINARY); set_close_on_exec_flag (1); set_open_status (); return 1; diff --git a/winsup/cygwin/fhandler_zero.cc b/winsup/cygwin/fhandler_zero.cc index ff8271344..58b82be22 100644 --- a/winsup/cygwin/fhandler_zero.cc +++ b/winsup/cygwin/fhandler_zero.cc @@ -23,7 +23,7 @@ fhandler_dev_zero::fhandler_dev_zero () int fhandler_dev_zero::open (path_conv *, int flags, mode_t) { - set_flags (flags & ~O_TEXT, O_BINARY); + set_flags ((flags & ~O_TEXT) | O_BINARY); set_open_status (); return 1; } diff --git a/winsup/cygwin/net.cc b/winsup/cygwin/net.cc index d3eba725c..c54dc7eed 100644 --- a/winsup/cygwin/net.cc +++ b/winsup/cygwin/net.cc @@ -510,7 +510,7 @@ fdsock (int& fd, const char *name, SOCKET soc) debug_printf ("not setting socket inheritance since winsock2_active %d", winsock2_active); fhandler_socket *fh = (fhandler_socket *) cygheap->fdtab.build_fhandler (fd, FH_SOCKET, name); fh->set_io_handle ((HANDLE) soc); - fh->set_flags (O_RDWR, O_BINARY); + fh->set_flags (O_RDWR | O_BINARY); debug_printf ("fd %d, name '%s', soc %p", fd, name, soc); return fh; } diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index cfa3ef241..2e8626b2d 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -1338,7 +1338,15 @@ set_flags (unsigned *flags, unsigned val) { *flags = val; if (!(*flags & PATH_BINARY)) - *flags = PATH_TEXT; + { + *flags |= PATH_TEXT; + debug_printf ("flags: text (%p)", *flags & (PATH_TEXT | PATH_BINARY)); + } + else + { + *flags |= PATH_BINARY; + debug_printf ("flags: binary (%p)", *flags & (PATH_TEXT | PATH_BINARY)); + } } /* conv_to_win32_path: Ensure src_path is a pure Win32 path and store -- cgit v1.2.3