diff --git a/user/ansi_parser_callbacks.c b/user/ansi_parser_callbacks.c index 0aa64ea..712ef04 100644 --- a/user/ansi_parser_callbacks.c +++ b/user/ansi_parser_callbacks.c @@ -267,19 +267,19 @@ apars_handle_CSI(char leadchar, int *params, char keychar) break; case 'L': - // TODO insert line + screen_insert_lines(n1); break; case 'M': - // TODO delete line + screen_delete_lines(n1); break; case '@': - // TODO insert character (in line) + screen_insert_characters(n1); break; case 'P': - // TODO delete character (in line) + screen_delete_characters(n1); break; } } diff --git a/user/screen.c b/user/screen.c index 0cc86f8..17bbcea 100644 --- a/user/screen.c +++ b/user/screen.c @@ -276,6 +276,34 @@ screen_fill_with_E(void) //region Screen manipulation +void screen_insert_lines(unsigned int lines) +{ + NOTIFY_LOCK(); + // TODO + NOTIFY_DONE(); +} + +void screen_delete_lines(unsigned int lines) +{ + NOTIFY_LOCK(); + // TODO + NOTIFY_DONE(); +} + +void screen_insert_characters(unsigned int count) +{ + NOTIFY_LOCK(); + // TODO + NOTIFY_DONE(); +} + +void screen_delete_characters(unsigned int count) +{ + NOTIFY_LOCK(); + // TODO + NOTIFY_DONE(); +} + /** * Change the screen size * diff --git a/user/screen.h b/user/screen.h index b2d93f0..705b4bf 100644 --- a/user/screen.h +++ b/user/screen.h @@ -122,6 +122,12 @@ void screen_scroll_down(unsigned int lines); /** esc # 8 - fill entire screen with E of default colors */ void screen_fill_with_E(void); +// --- insert / delete --- +void screen_insert_lines(unsigned int lines); +void screen_delete_lines(unsigned int lines); +void screen_insert_characters(unsigned int count); +void screen_delete_characters(unsigned int count); + // --- Cursor control --- /** Set cursor position */