makes cursorx and cursory signed, as there
authorPatrick Georgi <patrick.georgi@coresystems.de>
Thu, 11 Sep 2008 17:44:45 +0000 (17:44 +0000)
committerPatrick Georgi <patrick.georgi@coresystems.de>
Thu, 11 Sep 2008 17:44:45 +0000 (17:44 +0000)
are several "if (cursorx < 0)" tests.

I also added another one, to make backspace
wrap backwards into the previous line, if necessary.

Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Jordan Crouse <jordan.crouse@amd.com>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3576 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

payloads/libpayload/drivers/video/video.c

index 78f410be347588bfd458154b8d8974ce90cb35e1..23d0c1bb58ce994c29dc7347b12b9c5534dfc93b 100644 (file)
@@ -51,8 +51,8 @@ static struct video_console *console_list[] =
 
 static struct video_console *console;
 
-static unsigned int cursorx;
-static unsigned int cursory;
+static int cursorx;
+static int cursory;
 static unsigned int cursor_enabled = 1;
 
 static void video_console_fixup_cursor(void)
@@ -122,6 +122,10 @@ void video_console_putchar(unsigned int ch)
 
        case '\b':
                cursorx--;
+               if (cursorx < 0) {
+                       cursory--;
+                       cursorx = VIDEO_COLS;
+               }
                break;
 
        case '\t':
@@ -172,7 +176,7 @@ int video_console_init(void)
                        console = console_list[i];
 
                        if (console->get_cursor)
-                               console->get_cursor(&cursorx, &cursory, &cursor_enabled);
+                               console->get_cursor((unsigned int*)&cursorx, (unsigned int*)&cursory, &cursor_enabled);
 
                        if (cursorx) {
                                cursorx = 0;