From d527acced45955fa83f0453e2c215b6cc1cad920 Mon Sep 17 00:00:00 2001 From: Nguyễn Thái Ngọc Duy Date: Tue, 14 Sep 2010 16:54:54 +1000 Subject: win32: winansi: implement \033[%uD --- win32/winansi.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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) pos, NULL); } +static void move_cursor_back(int n) +{ + CONSOLE_SCREEN_BUFFER_INFO sbi; + + if (!console) + return; + + GetConsoleScreenBufferInfo(console, &sbi); + sbi.dwCursorPosition.X -= n; + SetConsoleCursorPosition(console, sbi.dwCursorPosition); +} + static const char *set_attr(const char *str) { const char *func; @@ -248,6 +260,9 @@ static const char *set_attr(const char *str) set_console_attr(); break; + case 'D': + move_cursor_back(strtol(str, (char **)&str, 10)); + break; case 'J': erase_till_end_of_screen(); break; -- cgit v1.2.3-55-g6feb