From 2cb8586c943d4e299f067f96cf57543352224609 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Hru=C5=A1ka?= Date: Thu, 10 Aug 2017 01:58:10 +0200 Subject: [PATCH] preparation for insert and delete commands --- user/ansi_parser_callbacks.c | 8 ++++---- user/screen.c | 28 ++++++++++++++++++++++++++++ user/screen.h | 6 ++++++ 3 files changed, 38 insertions(+), 4 deletions(-) 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 */