From 5e21cccadc33e092c32580d330e9aa76684ac480 Mon Sep 17 00:00:00 2001 From: Benjamyn Love Date: Wed, 7 Feb 2024 13:24:33 +1100 Subject: [PATCH] chapter4 --- kilo.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/kilo.c b/kilo.c index 2268593..7d17361 100644 --- a/kilo.c +++ b/kilo.c @@ -21,6 +21,9 @@ enum editorKey ARROW_RIGHT, ARROW_UP, ARROW_DOWN, + DEL_KEY, + HOME_KEY, + END_KEY, PAGE_UP, PAGE_DOWN }; @@ -101,10 +104,15 @@ int editorReadKey() { switch (seq[1]) { + case '1': return HOME_KEY; + case '3': return DEL_KEY; + case '4': return END_KEY; case '5': return PAGE_UP; case '6': return PAGE_DOWN; + case '7': return HOME_KEY; + case '8': return END_KEY; } } } @@ -120,8 +128,15 @@ int editorReadKey() return ARROW_RIGHT; case 'D': return ARROW_LEFT; + case 'H': return HOME_KEY; + case 'F': return END_KEY; } } + } else if (seq[0] == 'O') { + switch (seq[1]) { + case 'H': return HOME_KEY; + case 'F': return END_KEY; + } } return '\x1b'; } @@ -308,6 +323,12 @@ void editorProcessKeypress() exit(0); break; + case HOME_KEY: + E.cx = 0; + break; + case END_KEY: + E.cx = E.screencols - 1; + break; case PAGE_UP: case PAGE_DOWN: {