frontend: add a line editor for shell input

This commit is contained in:
2024-11-18 09:53:55 +00:00
parent f44a3364b3
commit 4fc1a6ade8
22 changed files with 2137 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
#ifndef LINE_ED_REFRESH_H_
#define LINE_ED_REFRESH_H_
struct line_ed;
struct refresh_state {
/* cursor position before the update was performed (excluding the prompt) */
unsigned int r_prev_cursor_x, r_prev_cursor_y;
/* when a backspace results in two separate lines being combined,
* this property contains the length of the first of the two combined
* lines BEFORE the concotenation was performed */
unsigned int r_prev_line_len;
};
extern void print_text(struct line_ed *ed, unsigned int x, unsigned int y, const char *s);
extern void print_buffer(struct line_ed *ed);
extern void put_refresh(struct line_ed *ed, struct refresh_state *state);
extern void backspace_nl_refresh(struct line_ed *ed, struct refresh_state *state);
extern void backspace_simple_refresh(struct line_ed *ed, struct refresh_state *state);
#endif