[coreboot] libpayload: Fix curses subwindows
Jordan Crouse
jordan.crouse at amd.com
Tue May 20 22:09:48 CEST 2008
On 15/05/08 10:25 -0600, Myles Watson wrote:
>
>
> > -----Original Message-----
> > From: coreboot-bounces+mylesgw=gmail.com at coreboot.org [mailto:coreboot-
> > bounces+mylesgw=gmail.com at coreboot.org] On Behalf Of jordan.crouse at amd.com
> > Sent: Tuesday, May 13, 2008 5:34 PM
> > To: coreboot at 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 at amd.com>
> Acked-by: Myles Watson <mylesgw at gmail.com>
r3336 (no, really). THanks.
> 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 at coreboot.org
> > http://www.coreboot.org/mailman/listinfo/coreboot
>
>
--
Jordan Crouse
Systems Software Development Engineer
Advanced Micro Devices, Inc.
More information about the coreboot
mailing list