about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--chat.h1
-rw-r--r--edit.c5
-rw-r--r--ui.c2
3 files changed, 6 insertions, 2 deletions
diff --git a/chat.h b/chat.h
index 914fde6..d6d9e1c 100644
--- a/chat.h
+++ b/chat.h
@@ -151,6 +151,7 @@ enum Edit {
 	EditRight,
 	EditKill,
 	EditErase,
+	EditDelete,
 	EditInsert,
 	EditComplete,
 	EditEnter,
diff --git a/edit.c b/edit.c
index f058f0a..c30e725 100644
--- a/edit.c
+++ b/edit.c
@@ -138,8 +138,9 @@ void edit(size_t id, enum Edit op, wchar_t ch) {
 		break; case EditLeft:  if (pos) pos--;
 		break; case EditRight: if (pos < len) pos++;
 
-		break; case EditKill:  len = pos = 0;
-		break; case EditErase: if (pos) delete(--pos, 1);
+		break; case EditKill:   len = pos = 0;
+		break; case EditErase:  if (pos) delete(--pos, 1);
+		break; case EditDelete: delete(pos, 1);
 
 		break; case EditInsert: {
 			reserve(pos, 1);
diff --git a/ui.c b/ui.c
index 4478478..8e502ca 100644
--- a/ui.c
+++ b/ui.c
@@ -625,6 +625,7 @@ static void keyCode(int code) {
 		break; case KeyMetaM: waddch(windows.active->pad, '\n');
 
 		break; case KEY_BACKSPACE: edit(id, EditErase, 0);
+		break; case KEY_DC: edit(id, EditDelete, 0);
 		break; case KEY_END: edit(id, EditEnd, 0);
 		break; case KEY_ENTER: edit(id, EditEnter, 0);
 		break; case KEY_HOME: edit(id, EditHome, 0);
@@ -645,6 +646,7 @@ static void keyCtrl(wchar_t ch) {
 		break; case L'?': edit(id, EditErase, 0);
 		break; case L'A': edit(id, EditHome, 0);
 		break; case L'B': edit(id, EditLeft, 0);
+		break; case L'D': edit(id, EditDelete, 0);
 		break; case L'E': edit(id, EditEnd, 0);
 		break; case L'F': edit(id, EditRight, 0);
 		break; case L'H': edit(id, EditErase, 0);