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:
Damien George 2015-10-20 13:27:14 +01:00
parent 22521ea9e2
commit f961456b29
3 changed files with 5 additions and 5 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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);