From 63319f3d355b5250d8e6da38b4586d3088449881 Mon Sep 17 00:00:00 2001 From: Kyle Isom Date: Tue, 18 Feb 2020 07:45:52 -0800 Subject: [PATCH] working on esc backspace --- ke/main.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/ke/main.c b/ke/main.c index da8ac65..ed5687d 100644 --- a/ke/main.c +++ b/ke/main.c @@ -713,7 +713,7 @@ editor_prompt(char *prompt, void (*cb)(char *, int16_t)) if (buflen != 0) { buf[--buflen] = '\0'; } - } else if (c == ESC_KEY) { + } else if (c == ESC_KEY || c == CTRL_KEY('g')) { editor_set_status(""); if (cb) { cb(buf, c); @@ -1058,6 +1058,10 @@ process_normal(int16_t c) void process_escape(int16_t c) { + struct erow *row = &editor.row[editor.cury]; + + editor_set_status("hi"); + switch (c) { case '>': editor.cury = editor.nrows; @@ -1066,6 +1070,20 @@ process_escape(int16_t c) case '<': editor.cury = 0; editor.curx = 0; + break; + case BACKSPACE: + if (isalnum(row->line[editor.curx])) { + editor_set_status("is alnum"); + while (editor.curx > 0 && isalnum(row->line[editor.curx])) { + process_normal(BACKSPACE); + } + } else { + editor_set_status("not alnum"); + process_normal(BACKSPACE); + } + break; + default: + editor_set_status("unknown ESC key: %04x", c); } }