readline: Handle END/HOME keys

This commit is contained in:
czapek1337 2022-01-28 23:51:56 +01:00
parent 0c677d093e
commit 2c1604089c
1 changed files with 12 additions and 0 deletions

View File

@ -316,6 +316,18 @@ void readline(const char *orig_str, char *buf, size_t limit) {
case '\n':
term_write((uintptr_t)"\n", 1);
goto out;
case GETCHAR_END:
for (size_t j = 0; j < strlen(buf) - i; j++) {
cursor_fwd();
}
i = strlen(buf);
continue;
case GETCHAR_HOME:
for (size_t j = 0; j < i; j++) {
cursor_back();
}
i = 0;
continue;
default: {
if (strlen(buf) < limit - 1 && isprint(c)) {
for (size_t j = strlen(buf); ; j--) {