separate command handling

This commit is contained in:
Luka Jankovic 2025-07-26 00:57:29 +02:00
parent 90db87bec9
commit 0be3768867
11 changed files with 143 additions and 52 deletions

View file

@ -76,10 +76,11 @@ static void char_input(struct kubo_context *context) {
int char_code;
do {
char_code = GetCharPressed();
if (char_code && context->state.id == KUBO_CONTEXT_COMMAND) {
kubo_char_arr_add(&context->command, char_code);
kubo_command_append_char(char_code);
} else if (char_code == ':') {
kubo_command_clear();
kubo_command_append_char(':');
kubo_context_set_state(context, KUBO_CONTEXT_COMMAND);
}
} while (char_code > 0);
@ -92,13 +93,12 @@ static void handle_cmd_input(struct kubo_context *context) {
kubo_context_set_state(context, KUBO_CONTEXT_NORMAL);
break;
case KEY_ENTER:
kubo_context_accept_cmd(context);
kubo_command_accept_cmd(context);
kubo_context_set_state(context, KUBO_CONTEXT_NORMAL);
break;
case KEY_DELETE:
case KEY_BACKSPACE:
if (context->command.count > 1) {
kubo_char_arr_pop(&context->command);
}
kubo_command_pop();
break;
default:
break;