aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--win32/winansi.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/win32/winansi.c b/win32/winansi.c
index c47e29a28..0a637670c 100644
--- a/win32/winansi.c
+++ b/win32/winansi.c
@@ -101,6 +101,9 @@ static void erase_in_line(void)
101 FillConsoleOutputCharacterA(console, ' ', 101 FillConsoleOutputCharacterA(console, ' ',
102 sbi.dwSize.X - sbi.dwCursorPosition.X, sbi.dwCursorPosition, 102 sbi.dwSize.X - sbi.dwCursorPosition.X, sbi.dwCursorPosition,
103 &dummy); 103 &dummy);
104 FillConsoleOutputAttribute(console, plain_attr,
105 sbi.dwSize.X - sbi.dwCursorPosition.X, sbi.dwCursorPosition,
106 &dummy);
104} 107}
105 108
106static void erase_till_end_of_screen(void) 109static void erase_till_end_of_screen(void)
@@ -116,11 +119,17 @@ static void erase_till_end_of_screen(void)
116 FillConsoleOutputCharacterA(console, ' ', 119 FillConsoleOutputCharacterA(console, ' ',
117 sbi.dwSize.X - sbi.dwCursorPosition.X, sbi.dwCursorPosition, 120 sbi.dwSize.X - sbi.dwCursorPosition.X, sbi.dwCursorPosition,
118 &dummy); 121 &dummy);
122 FillConsoleOutputAttribute(console, plain_attr,
123 sbi.dwSize.X - sbi.dwCursorPosition.X, sbi.dwCursorPosition,
124 &dummy);
119 125
120 pos.X = 0; 126 pos.X = 0;
121 for (pos.Y = sbi.dwCursorPosition.Y+1; pos.Y < sbi.dwSize.Y; pos.Y++) 127 for (pos.Y = sbi.dwCursorPosition.Y+1; pos.Y < sbi.dwSize.Y; pos.Y++) {
122 FillConsoleOutputCharacterA(console, ' ', sbi.dwSize.X, 128 FillConsoleOutputCharacterA(console, ' ', sbi.dwSize.X,
123 pos, &dummy); 129 pos, &dummy);
130 FillConsoleOutputAttribute(console, plain_attr, sbi.dwSize.X,
131 pos, &dummy);
132 }
124} 133}
125 134
126static void move_cursor_row(int n) 135static void move_cursor_row(int n)
@@ -313,11 +322,13 @@ static const char *set_attr(const char *str)
313 if (!len) 322 if (!len)
314 move_cursor(0, 0); 323 move_cursor(0, 0);
315 else { 324 else {
316 int row = strtol(str, (char **)&str, 10); 325 int row, col = 1;
326
327 row = strtol(str, (char **)&str, 10);
317 if (*str == ';') { 328 if (*str == ';') {
318 int col = strtol(str+1, (char **)&str, 10); 329 col = strtol(str+1, (char **)&str, 10);
319 move_cursor(col-1, row-1);
320 } 330 }
331 move_cursor(col > 0 ? col-1 : 0, row > 0 ? row-1 : 0);
321 } 332 }
322 break; 333 break;
323 case 'J': 334 case 'J':