-----Original Message----- From: coreboot-bounces+mylesgw=gmail.com@coreboot.org [mailto:coreboot- bounces+mylesgw=gmail.com@coreboot.org] On Behalf Of jordan.crouse@amd.com Sent: Tuesday, May 13, 2008 5:34 PM To: coreboot@coreboot.org Cc: Jordan Crouse Subject: [coreboot] [patch 2/5] libpayload: Fix curses subwindows
This fixes subwindows in curses so that they draw and refresh correctly.
Signed-off-by: Jordan Crouse jordan.crouse@amd.com
Acked-by: Myles Watson mylesgw@gmail.com
Thanks, Myles
Index: libpayload/curses/tinycurses.c
--- libpayload.orig/curses/tinycurses.c 2008-05-12
16:21:46.000000000 -
0600 +++ libpayload/curses/tinycurses.c 2008-05-13 13:38:19.000000000 -0600 @@ -66,7 +66,7 @@ static int window_count = 1;
// struct ldat foo; -static struct ldat ldat_list[3]; +static struct ldat ldat_list[MAX_WINDOWS][SCREEN_Y]; static int ldat_count = 0;
/* One item bigger than SCREEN_X to reverse place for a NUL byte. */ @@ -306,7 +306,7 @@ win->_begx = begx; // win->_yoffset = SP->_topstolen;
- win->_line = &ldat_list[ldat_count++];
win->_line = ldat_list[ldat_count++];
/* FIXME: Is this right? Should the window attributes be normal? */ win->_color = PAIR_NUMBER(0);
@@ -491,8 +491,8 @@ int werase(WINDOW *win) { int x, y;
- for (y = 0; y < win->_maxy; y++) {
for (x = 0; x < win->_maxx; x++) {
- for (y = 0; y <= win->_maxy; y++) {
}for (x = 0; x <= win->_maxx; x++) { win->_line[y].text[x].chars[0] = ' '; win->_line[y].text[x].attr = WINDOW_ATTRS(win);
@@ -559,8 +559,8 @@ // FIXME. int x, y;
- for (y = 0; y < win->_maxy; y++) {
for (x = 0; x < win->_maxx; x++) {
- for (y = 0; y <= win->_maxy; y++) {
for (x = 0; x <= win->_maxx; x++) { if (curses_flags & F_ENABLE_SERIAL)
serial_putchar(win->_line[y].text[x].chars[0]);
@@ -587,7 +587,7 @@ * but this will break wide characters! */ c |= (chtype)
(win->_line[y].text[x].chars[0] &
0xff);
video_console_putc(y, x, c);
video_console_putc(win->_begy + y,
win->_begx + x,
c); } } }
-- Jordan Crouse Systems Software Development Engineer Advanced Micro Devices, Inc.
-- coreboot mailing list coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot