Commit f961456b authored by Damien George's avatar Damien George
Browse files

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.
parent 22521ea9
......@@ -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);
......
......@@ -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);
......
......@@ -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);
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment