From 54679d85b1f2c1349bcbbc76b10d57a1e5137f23 Mon Sep 17 00:00:00 2001 From: scratko Date: Thu, 20 Jun 2024 18:38:11 +0300 Subject: Shell-edit release Autocomplete program and file names (tab). Moving the cursor to edit commands (left and right arrows). Deleting a character in a command (backspace). --- readline.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 readline.h (limited to 'readline.h') diff --git a/readline.h b/readline.h new file mode 100644 index 0000000..b626cae --- /dev/null +++ b/readline.h @@ -0,0 +1,37 @@ +#ifndef READLINE_H_SENTRY +#define READLINE_H_SENTRY + +#include "readline.h" + +/* + * ends with these codes in escape sequence + * for the arrows + */ +enum keys{ + left_arrow = 'D', + right_arrow = 'C', + up_arrow = 'A', + down_arrow = 'B', + none = 0, + unknown_key = -1, + backspace = 127 +}; + +struct readline_type { + char *arr; + int cursor_pos; + int considered_index; + int last_element_index; + int allocation_size; +}; + +void readline_create_array(struct readline_type *readline); +void readline_add_char(struct readline_type *readline, int ch); +void readline_reset_array(struct readline_type *readline); +void readline_clear(struct readline_type *readline); +void readline_print(struct readline_type *readline_type); +enum keys readline_detect_arrow_keys(int ch); +void readline_move_along(struct readline_type *readline, enum keys found_key); +void readline_character_deletion(struct readline_type *readline); + +#endif -- cgit v1.2.3