commit - fc43eaddf62cc96c86448dd3d0e37f1c8e2ab602
commit + d67133bf44fc951661865eb5fc3f285a8d004c4f
blob - 5a8112c5d9e98929a69471e1b2ca9ab7d8e56ed2
blob + 18acf3b67771585b906bdf975b92a9cfca392359
--- ui.c
+++ ui.c
static void global_key_unbound(void);
-static void cmd_mini_del(struct tab*);
+static void cmd_mini_delete_char(struct tab*);
+static void cmd_mini_delete_backward_char(struct tab*);
static void cmd_mini_forward_char(struct tab*);
static void cmd_mini_backward_char(struct tab*);
static void cmd_mini_move_end_of_line(struct tab*);
minibuffer_set_key("ret", cmd_mini_complete_and_exit);
minibuffer_set_key("C-g", cmd_mini_abort);
minibuffer_set_key("esc", cmd_mini_abort);
- minibuffer_set_key("del", cmd_mini_del);
+ minibuffer_set_key("C-d", cmd_mini_delete_char);
+ minibuffer_set_key("del", cmd_mini_delete_backward_char);
minibuffer_set_key("C-f", cmd_mini_forward_char);
minibuffer_set_key("C-b", cmd_mini_backward_char);
}
static void
-cmd_mini_del(struct tab *tab)
+cmd_mini_delete_char(struct tab *tab)
+{
+ if (ministate.len == 0 || ministate.off == ministate.len)
+ return;
+
+ memmove(&ministate.buf[ministate.off],
+ &ministate.buf[ministate.off+1],
+ ministate.len - ministate.off + 1);
+ ministate.len--;
+}
+
+static void
+cmd_mini_delete_backward_char(struct tab *tab)
{
if (ministate.len == 0 || ministate.off == 0)
return;