[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