summary refs log tree commit diff
path: root/ui.c
diff options
context:
space:
mode:
authorC. McEnroe2020-02-07 01:55:26 -0500
committerC. McEnroe2020-02-07 01:56:23 -0500
commitaf244ad3cd19fb50bf9b9855f02d81e61441ab50 (patch)
tree4ecd69f0d6fc8f041823e4d5846467ce0b7c1709 /ui.c
parent5470254fa5fd0f6108b1f075d9ac2dd24afa7fdc (diff)
Add some real line editing operations
Diffstat (limited to 'ui.c')
-rw-r--r--ui.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/ui.c b/ui.c
index ffe8748..f73020a 100644
--- a/ui.c
+++ b/ui.c
@@ -546,12 +546,20 @@ void uiShowNum(size_t num) {
 }
 
 static void keyCode(int code) {
+	size_t id = windows.active->id;
 	switch (code) {
 		break; case KEY_RESIZE:  resize();
 		break; case KeyFocusIn:  unmark();
 		break; case KeyFocusOut: windows.active->mark = true;
 		break; case KeyPasteOn:; // TODO
 		break; case KeyPasteOff:; // TODO
+
+		break; case KEY_BACKSPACE: edit(id, EditErase, 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);
+		break; case KEY_LEFT: edit(id, EditLeft, 0);
+		break; case KEY_RIGHT: edit(id, EditRight, 0);
 	}
 }
 
@@ -567,6 +575,10 @@ static void keyMeta(wchar_t ch) {
 static void keyCtrl(wchar_t ch) {
 	size_t id = windows.active->id;
 	switch (ch) {
+		break; case L'?': edit(id, EditErase, 0);
+		break; case L'A': edit(id, EditHome, 0);
+		break; case L'E': edit(id, EditEnd, 0);
+		break; case L'H': edit(id, EditErase, 0);
 		break; case L'J': edit(id, EditEnter, 0);
 		break; case L'L': clearok(curscr, true);
 		break; case L'U': edit(id, EditKill, 0);