diff options
author | Christopher Faylor <me@cgf.cx> | 2000-11-17 06:01:14 +0300 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2000-11-17 06:01:14 +0300 |
commit | 5758fdf31d8cee2c3f75abf08b2f1bd54f2f25c7 (patch) | |
tree | fe127fb1ae658269ec1efdd5c99c83ea6d50474c /winsup/cygwin/fhandler_console.cc | |
parent | c302181722bd781bb8d1e2e22688bf0e0dc732e0 (diff) |
* fhandler_console.cc: New member variable `dwBufferSize' for `info'.
(fillin_info): Set `dwBufferSize' to the size of the console buffer.
(clear_screen): Use width of console buffer to calculate how many spaces to
clear.
Diffstat (limited to 'winsup/cygwin/fhandler_console.cc')
-rw-r--r-- | winsup/cygwin/fhandler_console.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/winsup/cygwin/fhandler_console.cc b/winsup/cygwin/fhandler_console.cc index fcb55c2a8..3e49e1480 100644 --- a/winsup/cygwin/fhandler_console.cc +++ b/winsup/cygwin/fhandler_console.cc @@ -264,6 +264,7 @@ static struct SHORT winTop; SHORT winBottom; COORD dwWinSize; + COORD dwBufferSize; COORD dwCursorPosition; WORD wAttributes; } info; @@ -280,6 +281,7 @@ fhandler_console::fillin_info (void) info.winBottom = linfo.srWindow.Bottom; info.dwWinSize.Y = 1 + linfo.srWindow.Bottom - linfo.srWindow.Top; info.dwWinSize.X = 1 + linfo.srWindow.Right - linfo.srWindow.Left; + info.dwBufferSize = linfo.dwSize; info.dwCursorPosition = linfo.dwCursorPosition; info.wAttributes = linfo.wAttributes; } @@ -648,9 +650,9 @@ fhandler_console::clear_screen (int x1, int y1, int x2, int y2) if (y2 < 0) y2 = info.winBottom; - num = abs (y1 - y2) * info.dwWinSize.X + abs (x1 - x2) + 1; + num = abs (y1 - y2) * info.dwBufferSize.X + abs (x1 - x2) + 1; - if ((y2 * info.dwWinSize.X + x2) > (y1 * info.dwWinSize.X + x1)) + if ((y2 * info.dwBufferSize.X + x2) > (y1 * info.dwBufferSize.X + x1)) { tlc.X = x1; tlc.Y = y1; |