aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorCalvin Rose <calsrose@gmail.com>2019-11-16 21:42:38 -0500
committerGitHub <noreply@github.com>2019-11-16 21:42:38 -0500
commit8ff5e49d1f73a3deede7010df8c2651bdff5984b (patch)
treee6b0d482fe80e6a4d670e20b0109a4e7e1e32ac8
parentVersion 1.5.1 (diff)
parentFix formatting (diff)
Merge pull request #176 from staab/repl-delete
Add support for delete key in repl
-rw-r--r--.gitignore3
-rw-r--r--src/mainclient/line.c11
2 files changed, 14 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index ede1d7fd..fb90c98e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,6 +13,9 @@ janet
janet-*.tar.gz
dist
+# Kakoune (fzf via fd)
+.fdignore
+
# VSCode
.vscode
diff --git a/src/mainclient/line.c b/src/mainclient/line.c
index 4b29d064..5578c7b0 100644
--- a/src/mainclient/line.c
+++ b/src/mainclient/line.c
@@ -314,6 +314,14 @@ static void kbackspace() {
}
}
+static void kdelete() {
+ if (gbl_pos != gbl_len) {
+ memmove(gbl_buf + gbl_pos, gbl_buf + gbl_pos + 1, gbl_len - gbl_pos);
+ gbl_buf[--gbl_len] = '\0';
+ refresh();
+ }
+}
+
static int line() {
gbl_cols = getcols();
gbl_plen = 0;
@@ -386,6 +394,9 @@ static int line() {
if (read(STDIN_FILENO, seq + 2, 1) == -1) break;
if (seq[2] == '~') {
switch (seq[1]) {
+ case '3': /* delete */
+ kdelete();
+ break;
default:
break;
}