diff options
author | scratko <m@scratko.xyz> | 2024-06-20 18:38:11 +0300 |
---|---|---|
committer | scratko <m@scratko.xyz> | 2024-06-21 01:00:37 +0300 |
commit | ef4604d9c146dbab1a653f66209103b74e6feb36 (patch) | |
tree | 62562f68a0080cd65d94a525110180dab3b99919 /readline.h | |
parent | 8f4f87eabec13330a2b3a974975053c1e4632a11 (diff) | |
download | shell-ef4604d9c146dbab1a653f66209103b74e6feb36.tar.gz shell-ef4604d9c146dbab1a653f66209103b74e6feb36.tar.bz2 shell-ef4604d9c146dbab1a653f66209103b74e6feb36.zip |
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).
Diffstat (limited to 'readline.h')
-rw-r--r-- | readline.h | 37 |
1 files changed, 37 insertions, 0 deletions
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 |