console: allow erasing partial lines
authorDavid Herrmann <dh.herrmann@googlemail.com>
Sat, 14 Jul 2012 17:55:35 +0000 (19:55 +0200)
committerDavid Herrmann <dh.herrmann@googlemail.com>
Sat, 14 Jul 2012 17:58:38 +0000 (19:58 +0200)
Later VTs allow erasing only partial lines so add support for that in the
console backend.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
src/console.c
src/console.h

index c97e613..9c421a2 100644 (file)
@@ -1079,6 +1079,22 @@ void kmscon_console_erase_cursor(struct kmscon_console *con)
        console_erase_region(con, x, con->cursor_y, x, con->cursor_y, false);
 }
 
+void kmscon_console_erase_chars(struct kmscon_console *con, unsigned int num)
+{
+       unsigned int x;
+
+       if (!con || !num)
+               return;
+
+       if (con->cursor_x >= con->size_x)
+               x = con->size_x - 1;
+       else
+               x = con->cursor_x;
+
+       console_erase_region(con, x, con->cursor_y, x + num - 1, con->cursor_y,
+                            false);
+}
+
 void kmscon_console_erase_cursor_to_end(struct kmscon_console *con)
 {
        unsigned int x;
index 6c02d03..454d806 100644 (file)
@@ -96,6 +96,7 @@ void kmscon_console_delete_lines(struct kmscon_console *con, unsigned int num);
 void kmscon_console_insert_chars(struct kmscon_console *con, unsigned int num);
 void kmscon_console_delete_chars(struct kmscon_console *con, unsigned int num);
 void kmscon_console_erase_cursor(struct kmscon_console *con);
+void kmscon_console_erase_chars(struct kmscon_console *con, unsigned int num);
 void kmscon_console_erase_cursor_to_end(struct kmscon_console *con);
 void kmscon_console_erase_home_to_cursor(struct kmscon_console *con);
 void kmscon_console_erase_current_line(struct kmscon_console *con);