aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2010-09-14 16:32:36 +1000
committerNguyễn Thái Ngọc Duy <pclouds@gmail.com>2010-09-14 18:02:19 +1000
commit5531e51fe26e4c6bbd34dbaa98b12564f8a7f295 (patch)
tree49c1ae242facb346037907af2dda370200667558
parent42b6a4c89ad8d4f625a3b63b7556929e3a660e90 (diff)
downloadbusybox-w32-5531e51fe26e4c6bbd34dbaa98b12564f8a7f295.tar.gz
busybox-w32-5531e51fe26e4c6bbd34dbaa98b12564f8a7f295.tar.bz2
busybox-w32-5531e51fe26e4c6bbd34dbaa98b12564f8a7f295.zip
win32: winansi: implement \033[J
-rw-r--r--win32/winansi.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/win32/winansi.c b/win32/winansi.c
index e2e7010fb..51bfad67c 100644
--- a/win32/winansi.c
+++ b/win32/winansi.c
@@ -91,6 +91,24 @@ static void erase_in_line(void)
91 NULL); 91 NULL);
92} 92}
93 93
94static void erase_till_end_of_screen(void)
95{
96 CONSOLE_SCREEN_BUFFER_INFO sbi;
97 COORD pos;
98
99 if (!console)
100 return;
101
102 GetConsoleScreenBufferInfo(console, &sbi);
103 FillConsoleOutputCharacterA(console, ' ',
104 sbi.dwSize.X - sbi.dwCursorPosition.X, sbi.dwCursorPosition,
105 NULL);
106
107 pos.X = 0;
108 for (pos.Y = sbi.dwCursorPosition.Y+1; pos.Y < sbi.dwSize.Y; pos.Y++)
109 FillConsoleOutputCharacterA(console, ' ', sbi.dwSize.X,
110 pos, NULL);
111}
94 112
95static const char *set_attr(const char *str) 113static const char *set_attr(const char *str)
96{ 114{
@@ -230,6 +248,9 @@ static const char *set_attr(const char *str)
230 248
231 set_console_attr(); 249 set_console_attr();
232 break; 250 break;
251 case 'J':
252 erase_till_end_of_screen();
253 break;
233 case 'K': 254 case 'K':
234 erase_in_line(); 255 erase_in_line();
235 break; 256 break;