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.
This commit is contained in:
parent
22521ea9e2
commit
f961456b29
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user