diff options
Diffstat (limited to 'win32')
-rw-r--r-- | win32/winansi.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/win32/winansi.c b/win32/winansi.c index 78d5d5f5c..ebe831593 100644 --- a/win32/winansi.c +++ b/win32/winansi.c | |||
@@ -109,31 +109,23 @@ static void erase_in_line(void) | |||
109 | static void erase_till_end_of_screen(void) | 109 | static void erase_till_end_of_screen(void) |
110 | { | 110 | { |
111 | CONSOLE_SCREEN_BUFFER_INFO sbi; | 111 | CONSOLE_SCREEN_BUFFER_INFO sbi; |
112 | COORD pos; | 112 | DWORD dummy, len; |
113 | DWORD dummy; | ||
114 | 113 | ||
115 | if (!console) | 114 | if (!console) |
116 | return; | 115 | return; |
117 | 116 | ||
118 | GetConsoleScreenBufferInfo(console, &sbi); | 117 | GetConsoleScreenBufferInfo(console, &sbi); |
119 | FillConsoleOutputCharacterA(console, ' ', | 118 | len = sbi.dwSize.X - sbi.dwCursorPosition.X + |
120 | sbi.dwSize.X - sbi.dwCursorPosition.X, sbi.dwCursorPosition, | 119 | sbi.dwSize.X * (sbi.srWindow.Bottom - sbi.dwCursorPosition.Y); |
120 | |||
121 | FillConsoleOutputCharacterA(console, ' ', len, sbi.dwCursorPosition, | ||
121 | &dummy); | 122 | &dummy); |
122 | FillConsoleOutputAttribute(console, plain_attr, | 123 | FillConsoleOutputAttribute(console, plain_attr, len, sbi.dwCursorPosition, |
123 | sbi.dwSize.X - sbi.dwCursorPosition.X, sbi.dwCursorPosition, | ||
124 | &dummy); | 124 | &dummy); |
125 | 125 | ||
126 | pos.X = 0; | ||
127 | for (pos.Y = sbi.dwCursorPosition.Y+1; pos.Y <= sbi.srWindow.Bottom; | ||
128 | pos.Y++) { | ||
129 | FillConsoleOutputCharacterA(console, ' ', sbi.dwSize.X, | ||
130 | pos, &dummy); | ||
131 | FillConsoleOutputAttribute(console, plain_attr, sbi.dwSize.X, | ||
132 | pos, &dummy); | ||
133 | } | ||
134 | } | 126 | } |
135 | 127 | ||
136 | static void move_cursor_row(int n) | 128 | void move_cursor_row(int n) |
137 | { | 129 | { |
138 | CONSOLE_SCREEN_BUFFER_INFO sbi; | 130 | CONSOLE_SCREEN_BUFFER_INFO sbi; |
139 | 131 | ||