From f961456b29a6ca2bd386a672d2ea2782c925c72f Mon Sep 17 00:00:00 2001 From: Damien George Date: Tue, 20 Oct 2015 13:27:14 +0100 Subject: [PATCH] lib/mp-readline: Add n_chars argument to mp_hal_erase_line_from_cursor. If VT100 support is not available then a given implementation of mp_hal_erase_line_from_cursor might need to know the number of characters to erase. This patch does not change generated code when VT100 is supported, since compiler can optimise away the argument. --- lib/mp-readline/readline.c | 6 +++--- windows/windows_mphal.c | 2 +- windows/windows_mphal.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/mp-readline/readline.c b/lib/mp-readline/readline.c index 31b60e2682..28383b9a3e 100644 --- a/lib/mp-readline/readline.c +++ b/lib/mp-readline/readline.c @@ -82,7 +82,8 @@ STATIC void mp_hal_move_cursor_back(uint pos) { } } -STATIC void mp_hal_erase_line_from_cursor(void) { +STATIC void mp_hal_erase_line_from_cursor(uint n_chars_to_erase) { + (void)n_chars_to_erase; mp_hal_stdout_tx_strn("\x1b[K", 3); } #endif @@ -338,8 +339,7 @@ delete_key: if (redraw_from_cursor) { if (rl.line->len < last_line_len) { // erase old chars - // (number of chars to erase: last_line_len - rl.cursor_pos) - mp_hal_erase_line_from_cursor(); + mp_hal_erase_line_from_cursor(last_line_len - rl.cursor_pos); } // draw new chars mp_hal_stdout_tx_strn(rl.line->buf + rl.cursor_pos, rl.line->len - rl.cursor_pos); diff --git a/windows/windows_mphal.c b/windows/windows_mphal.c index f2f8cd9527..db03571baa 100644 --- a/windows/windows_mphal.c +++ b/windows/windows_mphal.c @@ -92,7 +92,7 @@ void mp_hal_move_cursor_back(uint pos) { SetConsoleCursorPosition(con_out, info.dwCursorPosition); } -void mp_hal_erase_line_from_cursor() { +void mp_hal_erase_line_from_cursor(uint n_chars_to_erase) { assure_conout_handle(); CONSOLE_SCREEN_BUFFER_INFO info; GetConsoleScreenBufferInfo(con_out, &info); diff --git a/windows/windows_mphal.h b/windows/windows_mphal.h index b9ed67e710..8173d93eca 100644 --- a/windows/windows_mphal.h +++ b/windows/windows_mphal.h @@ -29,4 +29,4 @@ #define MICROPY_HAL_HAS_VT100 (0) void mp_hal_move_cursor_back(unsigned int pos); -void mp_hal_erase_line_from_cursor(); +void mp_hal_erase_line_from_cursor(unsigned int n_chars_to_erase);