fix: autocomplete working again (ratio starnakin) and clean some stuff
This commit is contained in:
@ -76,36 +76,35 @@ static void auto_complete(void)
|
||||
kprintf("%c", screen->line[i]);
|
||||
}
|
||||
}
|
||||
void terminal_putentryat(struct font node, uint32_t fg_color, uint32_t bg_color,
|
||||
size_t x, size_t y);
|
||||
struct font get_font_node(int c);
|
||||
|
||||
static char *get_line(void)
|
||||
{
|
||||
size_t i = 0;
|
||||
struct key_event ev;
|
||||
const size_t size = sizeof(screen->line);
|
||||
|
||||
do {
|
||||
while (1) {
|
||||
ev = get_key();
|
||||
if (!ev.scan_code)
|
||||
continue;
|
||||
if (ev.c == '\n')
|
||||
break;
|
||||
char *buf = screen->line;
|
||||
i = strlen(screen->line);
|
||||
if (ev.scan_code == KEY_BACKSPACE) {
|
||||
if (!i)
|
||||
continue;
|
||||
terminal_remove_last_char();
|
||||
buf[--i] = '\0';
|
||||
} else if (ev.scan_code == KEY_TAB && i) {
|
||||
auto_complete();
|
||||
} else if (ev.c && i < size - 1) {
|
||||
kprintf("%c", ev.c);
|
||||
buf[i++] = ev.c;
|
||||
const size_t size = sizeof(screen->line);
|
||||
if (ev.scan_code) {
|
||||
if (ev.scan_code == KEY_BACKSPACE) {
|
||||
if (!i)
|
||||
continue;
|
||||
buf[--i] = '\0';
|
||||
terminal_remove_last_char();
|
||||
} else if (ev.scan_code == KEY_TAB && i) {
|
||||
auto_complete();
|
||||
} else if (ev.c && i < size - 1) {
|
||||
kprintf("%c", ev.c);
|
||||
buf[i++] = ev.c;
|
||||
}
|
||||
if (i >= size)
|
||||
break;
|
||||
}
|
||||
} while (i < size);
|
||||
}
|
||||
kprintf("\n");
|
||||
screen->line[i] = '\0';
|
||||
return screen->line;
|
||||
|
Reference in New Issue
Block a user