aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2010-09-14 16:54:54 +1000
committerNguyễn Thái Ngọc Duy <pclouds@gmail.com>2010-09-14 18:02:20 +1000
commitd527acced45955fa83f0453e2c215b6cc1cad920 (patch)
tree16d153328fd1cd68b34418052ac5f336e5faeeae
parentfc11f0cef175a7bfd652691d05f3e19147462cb1 (diff)
downloadbusybox-w32-d527acced45955fa83f0453e2c215b6cc1cad920.tar.gz
busybox-w32-d527acced45955fa83f0453e2c215b6cc1cad920.tar.bz2
busybox-w32-d527acced45955fa83f0453e2c215b6cc1cad920.zip
win32: winansi: implement \033[%uD
-rw-r--r--win32/winansi.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/win32/winansi.c b/win32/winansi.c
index 51bfad67c..3e97779cb 100644
--- a/win32/winansi.c
+++ b/win32/winansi.c
@@ -110,6 +110,18 @@ static void erase_till_end_of_screen(void)
110 pos, NULL); 110 pos, NULL);
111} 111}
112 112
113static void move_cursor_back(int n)
114{
115 CONSOLE_SCREEN_BUFFER_INFO sbi;
116
117 if (!console)
118 return;
119
120 GetConsoleScreenBufferInfo(console, &sbi);
121 sbi.dwCursorPosition.X -= n;
122 SetConsoleCursorPosition(console, sbi.dwCursorPosition);
123}
124
113static const char *set_attr(const char *str) 125static const char *set_attr(const char *str)
114{ 126{
115 const char *func; 127 const char *func;
@@ -248,6 +260,9 @@ static const char *set_attr(const char *str)
248 260
249 set_console_attr(); 261 set_console_attr();
250 break; 262 break;
263 case 'D':
264 move_cursor_back(strtol(str, (char **)&str, 10));
265 break;
251 case 'J': 266 case 'J':
252 erase_till_end_of_screen(); 267 erase_till_end_of_screen();
253 break; 268 break;