summaryrefslogtreecommitdiffstatshomepage
path: root/lib/mp-readline/readline.c
diff options
context:
space:
mode:
authorstijn <stinos@zoho.com>2015-05-28 13:41:36 +0200
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2015-05-30 13:38:24 +0300
commit9a522dda6e699bfa329dd44ec7fd215f38533122 (patch)
treed7e084dc000d2a37a22f3f362a3aa8436b31d445 /lib/mp-readline/readline.c
parent100004eeaf6c24f6c1b6e009ea60c991e29a8692 (diff)
downloadmicropython-9a522dda6e699bfa329dd44ec7fd215f38533122.tar.gz
micropython-9a522dda6e699bfa329dd44ec7fd215f38533122.zip
lib/mp-readline: Add implementation for deleting a character
xterm and others use the ESC[~3 sequence when pressing the delete key
Diffstat (limited to 'lib/mp-readline/readline.c')
-rw-r--r--lib/mp-readline/readline.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/mp-readline/readline.c b/lib/mp-readline/readline.c
index ff897115a3..1334eb91d9 100644
--- a/lib/mp-readline/readline.c
+++ b/lib/mp-readline/readline.c
@@ -228,6 +228,12 @@ home_key:
} else if (rl.escape_seq_buf[0] == '4' || rl.escape_seq_buf[0] == '8') {
end_key:
redraw_step_forward = rl.line->len - rl.cursor_pos;
+ } else if (rl.escape_seq_buf[0] == '3') {
+ // delete
+ if (rl.cursor_pos >= rl.orig_line_len && rl.cursor_pos < rl.line->len) {
+ vstr_cut_out_bytes(rl.line, rl.cursor_pos, 1);
+ redraw_from_cursor = true;
+ }
} else {
DEBUG_printf("(ESC [ %c %d)", rl.escape_seq_buf[0], c);
}