diff options
author | Christopher Faylor <me@cgf.cx> | 2002-05-31 22:35:57 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2002-05-31 22:35:57 +0000 |
commit | de86e35bc42919388be659124c6e80655f8c23d4 (patch) | |
tree | a16f41f3d9328363f4862f6b48a0bd113bda4a44 | |
parent | 8461f41ec0fee805e963e5da65ebfae302fac331 (diff) | |
download | cygnal-de86e35bc42919388be659124c6e80655f8c23d4.tar.gz cygnal-de86e35bc42919388be659124c6e80655f8c23d4.tar.bz2 cygnal-de86e35bc42919388be659124c6e80655f8c23d4.zip |
* fhandler_console.cc (fhandler_console::open): Always default to binmode.
(fhandler_console::write_normal): Don't honor binmode setting. There is
already a termios setting for this.
(fhandler_console::init): Correct argument order in init call.
-rw-r--r-- | winsup/cygwin/ChangeLog | 8 | ||||
-rw-r--r-- | winsup/cygwin/fhandler_console.cc | 17 |
2 files changed, 16 insertions, 9 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 377231899..94c3ade58 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,13 @@ 2002-05-31 Christopher Faylor <cgf@redhat.com> + * fhandler_console.cc (fhandler_console::open): Always default to + binmode. + (fhandler_console::write_normal): Don't honor binmode setting. There + is already a termios setting for this. + (fhandler_console::init): Correct argument order in init call. + +2002-05-31 Christopher Faylor <cgf@redhat.com> + * fhandler.cc (fhandler_base::open): Make default open mode == binmode. (fhandler_base::init): Set open flags based on derived binmode argument. diff --git a/winsup/cygwin/fhandler_console.cc b/winsup/cygwin/fhandler_console.cc index ad8f86ba0..957dd4662 100644 --- a/winsup/cygwin/fhandler_console.cc +++ b/winsup/cygwin/fhandler_console.cc @@ -547,7 +547,8 @@ fhandler_console::open (path_conv *, int flags, mode_t) set_io_handle (INVALID_HANDLE_VALUE); set_output_handle (INVALID_HANDLE_VALUE); - set_flags (flags); + set_w_binary (1); + set_r_binary (1); /* Open the input handle as handle_ */ h = CreateFileA ("CONIN$", GENERIC_READ|GENERIC_WRITE, @@ -1443,21 +1444,19 @@ fhandler_console::write_normal (const unsigned char *src, case ESC: state_ = gotesc; break; - case DWN: /* WriteFile ("\n") always adds CR... */ + case DWN: cursor_get (&x, &y); if (y >= srBottom) { - if (y < info.winBottom || scroll_region.Top) + if (y >= info.winBottom && !scroll_region.Top) + WriteFile (get_output_handle (), "\n", 1, &done, 0); + else { scroll_screen (0, srTop + 1, -1, srBottom, 0, srTop); y--; } - else - WriteFile (get_output_handle (), "\n", 1, &done, 0); } - if (!get_w_binary ()) - x = 0; - cursor_set (FALSE, x, y + 1); + cursor_set (FALSE, ((tc->ti.c_oflag & ONLCR) ? 0 : x), y + 1); break; case BAK: cursor_rel (-1, 0); @@ -1698,7 +1697,7 @@ get_nonascii_key (INPUT_RECORD& input_rec, char *tmp) void fhandler_console::init (HANDLE f, DWORD a, mode_t bin) { - this->fhandler_termios::init (f, bin, a); + this->fhandler_termios::init (f, a, bin); /* Ensure both input and output console handles are open */ int mode = 0; |