diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2010-09-14 16:54:54 +1000 |
---|---|---|
committer | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2010-09-14 18:02:20 +1000 |
commit | d527acced45955fa83f0453e2c215b6cc1cad920 (patch) | |
tree | 16d153328fd1cd68b34418052ac5f336e5faeeae | |
parent | fc11f0cef175a7bfd652691d05f3e19147462cb1 (diff) | |
download | busybox-w32-d527acced45955fa83f0453e2c215b6cc1cad920.tar.gz busybox-w32-d527acced45955fa83f0453e2c215b6cc1cad920.tar.bz2 busybox-w32-d527acced45955fa83f0453e2c215b6cc1cad920.zip |
win32: winansi: implement \033[%uD
-rw-r--r-- | win32/winansi.c | 15 |
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 | ||
113 | static 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 | |||
113 | static const char *set_attr(const char *str) | 125 | static 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; |