Hell[o]

Attached current version of console fix'es patches, generaly synced
with cvs && cleanups for all of them and some changes in
04-grub2-ofconsole_fix.patch.

First it seems pegasos OF uses 24 lines console by default, but it
seems when no framebuffer is used the real number of rows is 25 not
24. Introduced GRUB_IEEE1275_FLAG_NOFB_ROWS25 to handle this
situation.

Second the very old OF version (Pegaos 1 mainly) has problem to
interpret the cls escape and simply ignore it. Introduce
GRUB_IEEE1275_FLAG_NOCLS to simulate cls with sequence of '\n' in that
case.

-- 
--- Marcin 'Morgoth' Kurek ---
diff -urN grub2.org/include/grub/term.h grub2/include/grub/term.h
--- grub2.org/include/grub/term.h	2007-07-22 01:32:22.000000000 +0200
+++ grub2/include/grub/term.h	2007-10-01 19:20:49.734330521 +0200
@@ -51,10 +51,13 @@
 #define GRUB_TERM_NO_EDIT	(1 << 1)
 /* Set when the terminal cannot do fancy things.  */
 #define GRUB_TERM_DUMB		(1 << 2)
+/* Set to use ascii menu borders.  */
+#define GRUB_TERM_SIMPLE_MENU	(1 << 3) 
+/* Set to use cp437 menu borders.  */
+#define GRUB_TERM_CP437_MENU	(1 << 4)
 /* Set when the terminal needs to be initialized.  */
 #define GRUB_TERM_NEED_INIT	(1 << 16)
 
-
 /* Unicode characters for fancy graphics.  */
 #define GRUB_TERM_DISP_LEFT	0x2190
 #define GRUB_TERM_DISP_UP	0x2191
diff -urN grub2.org/kern/term.c grub2/kern/term.c
--- grub2.org/kern/term.c	2007-07-22 01:32:26.000000000 +0200
+++ grub2/kern/term.c	2007-10-01 19:27:23.367330521 +0200
@@ -90,6 +90,94 @@
   return grub_cur_term;
 }
 
+static
+grub_uint32_t remap_border(grub_uint32_t code)
+{
+  if (grub_cur_term->flags & GRUB_TERM_SIMPLE_MENU)
+    {
+      switch (code)
+        {
+        case GRUB_TERM_DISP_LEFT:
+          code = '<';
+          break;
+
+        case GRUB_TERM_DISP_UP:
+          code = '^';
+          break;
+
+        case GRUB_TERM_DISP_RIGHT:
+          code = '>';
+          break;
+
+        case GRUB_TERM_DISP_DOWN:
+          code = 'v';
+          break;
+
+        case GRUB_TERM_DISP_HLINE:
+          code = '-';
+          break;
+
+        case GRUB_TERM_DISP_VLINE:
+          code = '|';
+          break;
+                                                                                                    
+        case GRUB_TERM_DISP_UL:
+        case GRUB_TERM_DISP_UR:
+        case GRUB_TERM_DISP_LL:
+        case GRUB_TERM_DISP_LR:
+          code = '+';
+          break;
+        }
+    }
+  else if(grub_cur_term->flags & GRUB_TERM_CP437_MENU)
+    {
+      switch (code)
+        {
+        case GRUB_TERM_DISP_LEFT:
+          code = 0x1b;
+          break;
+
+        case GRUB_TERM_DISP_UP:
+          code = 0x18;
+          break;
+
+        case GRUB_TERM_DISP_RIGHT:
+          code = 0x1a;
+          break;
+
+        case GRUB_TERM_DISP_DOWN:
+          code = 0x19;
+          break;
+
+        case GRUB_TERM_DISP_HLINE:
+          code = 0xc4;
+          break;
+
+        case GRUB_TERM_DISP_VLINE:
+          code = 0xb3;
+          break;
+                                                                                                    
+        case GRUB_TERM_DISP_UL:
+          code = 0xda;
+          break;
+
+        case GRUB_TERM_DISP_UR:
+          code = 0xbf;
+          break;
+
+        case GRUB_TERM_DISP_LL:
+          code = 0xc0;
+          break;
+
+        case GRUB_TERM_DISP_LR:
+          code = 0xd9;
+          break;
+        }
+    }
+
+  return code;
+}
+
 /* Put a Unicode character.  */
 void
 grub_putcode (grub_uint32_t code)
@@ -106,7 +194,9 @@
 
       return;
     }
-  
+
+  code = remap_border (code);
+
   (grub_cur_term->putchar) (code);
   
   if (code == '\n')
diff -urN grub2.org/term/i386/pc/console.c grub2/term/i386/pc/console.c
--- grub2.org/term/i386/pc/console.c	2007-07-22 01:32:30.000000000 +0200
+++ grub2/term/i386/pc/console.c	2007-10-01 19:30:35.966330521 +0200
@@ -25,58 +25,13 @@
 static grub_uint8_t grub_console_normal_color = 0x7;
 static grub_uint8_t grub_console_highlight_color = 0x70;
 
-static grub_uint32_t
-map_char (grub_uint32_t c)
-{
-  if (c > 0x7f)
-    {
-      /* Map some unicode characters to the VGA font, if possible.  */
-      switch (c)
-	{
-	case 0x2190:	/* left arrow */
-	  c = 0x1b;
-	  break;
-	case 0x2191:	/* up arrow */
-	  c = 0x18;
-	  break;
-	case 0x2192:	/* right arrow */
-	  c = 0x1a;
-	  break;
-	case 0x2193:	/* down arrow */
-	  c = 0x19;
-	  break;
-	case 0x2501:	/* horizontal line */
-	  c = 0xc4;
-	  break;
-	case 0x2503:	/* vertical line */
-	  c = 0xb3;
-	  break;
-	case 0x250F:	/* upper-left corner */
-	  c = 0xda;
-	  break;
-	case 0x2513:	/* upper-right corner */
-	  c = 0xbf;
-	  break;
-	case 0x2517:	/* lower-left corner */
-	  c = 0xc0;
-	  break;
-	case 0x251B:	/* lower-right corner */
-	  c = 0xd9;
-	  break;
-
-	default:
-	  c = '?';
-	  break;
-	}
-    }
-
-  return c;
-}
-
 static void
 grub_console_putchar (grub_uint32_t c)
 {
-  grub_console_real_putchar (map_char (c));
+  /* No Unicode support.  */
+  if (c > 0x7f)
+    c = '?';
+  grub_console_real_putchar (c);
 }
 
 static grub_ssize_t
@@ -133,7 +88,7 @@
     .setcolorstate = grub_console_setcolorstate,
     .setcolor = grub_console_setcolor,
     .setcursor = grub_console_setcursor,
-    .flags = 0,
+    .flags = GRUB_TERM_CP437_MENU,
     .next = 0
   };
 
diff -urN grub2.org/term/i386/pc/serial.c grub2/term/i386/pc/serial.c
--- grub2.org/term/i386/pc/serial.c	2007-07-22 01:32:30.000000000 +0200
+++ grub2/term/i386/pc/serial.c	2007-10-01 19:30:22.478330521 +0200
@@ -324,48 +324,9 @@
   /* Keep track of the cursor.  */
   if (keep_track)
     {
-      /* The serial terminal does not have VGA fonts.  */
+      /* The serial terminal does not support Unicode.  */
       if (c > 0x7F)
-	{
-	  /* Better than nothing.  */
-	  switch (c)
-	    {
-	    case GRUB_TERM_DISP_LEFT:
-	      c = '<';
-	      break;
-	      
-	    case GRUB_TERM_DISP_UP:
-	      c = '^';
-	      break;
-	      
-	    case GRUB_TERM_DISP_RIGHT:
-	      c = '>';
-	      break;
-	      
-	    case GRUB_TERM_DISP_DOWN:
-	      c = 'v';
-	      break;
-	      
-	    case GRUB_TERM_DISP_HLINE:
-	      c = '-';
-	      break;
-	      
-	    case GRUB_TERM_DISP_VLINE:
-	      c = '|';
-	      break;
-	      
-	    case GRUB_TERM_DISP_UL:
-	    case GRUB_TERM_DISP_UR:
-	    case GRUB_TERM_DISP_LL:
-	    case GRUB_TERM_DISP_LR:
-	      c = '+';
-	      break;
-	      
-	    default:
-	      c = '?';
-	      break;
-	    }
-	}
+        c = '?';
       
       switch (c)
 	{
@@ -498,7 +459,7 @@
   .setcolorstate = grub_serial_setcolorstate,
   .setcolor = grub_serial_setcolor,
   .setcursor = grub_serial_setcursor,
-  .flags = 0,
+  .flags = GRUB_TERM_SIMPLE_MENU,
   .next = 0
 };
 
diff -urN grub2.org/term/i386/pc/vesafb.c grub2/term/i386/pc/vesafb.c
--- grub2.org/term/i386/pc/vesafb.c	2007-07-22 01:32:31.000000000 +0200
+++ grub2/term/i386/pc/vesafb.c	2007-10-01 19:37:38.160330521 +0200
@@ -214,45 +214,7 @@
 			       unsigned *width)
 {
   if (code > 0x7f)
-    {
-      /* Map some unicode characters to the VGA font, if possible.  */
-      switch (code)
-	{
-	case 0x2190:	/* left arrow */
-	  code = 0x1b;
-	  break;
-	case 0x2191:	/* up arrow */
-	  code = 0x18;
-	  break;
-	case 0x2192:	/* right arrow */
-	  code = 0x1a;
-	  break;
-	case 0x2193:	/* down arrow */
-	  code = 0x19;
-	  break;
-	case 0x2501:	/* horizontal line */
-	  code = 0xc4;
-	  break;
-	case 0x2503:	/* vertical line */
-	  code = 0xb3;
-	  break;
-	case 0x250F:	/* upper-left corner */
-	  code = 0xda;
-	  break;
-	case 0x2513:	/* upper-right corner */
-	  code = 0xbf;
-	  break;
-	case 0x2517:	/* lower-left corner */
-	  code = 0xc0;
-	  break;
-	case 0x251B:	/* lower-right corner */
-	  code = 0xd9;
-	  break;
-
-	default:
-	  return grub_font_get_glyph (code, bitmap, width);
-	}
-    }
+    return grub_font_get_glyph (code, bitmap, width);
 
   if (bitmap)
     grub_memcpy (bitmap,
@@ -601,7 +563,7 @@
     .setcolorstate = grub_virtual_screen_setcolorstate,
     .setcolor = grub_virtual_screen_setcolor,
     .setcursor = grub_vesafb_setcursor,
-    .flags = 0,
+    .flags = GRUB_TERM_CP437_MENU,
     .next = 0
   };
 
diff -urN grub2.org/term/i386/pc/vga.c grub2/term/i386/pc/vga.c
--- grub2.org/term/i386/pc/vga.c	2007-07-22 01:32:31.000000000 +0200
+++ grub2/term/i386/pc/vga.c	2007-10-01 19:38:10.883330521 +0200
@@ -198,45 +198,7 @@
 get_vga_glyph (grub_uint32_t code, unsigned char bitmap[32], unsigned *width)
 {
   if (code > 0x7f)
-    {
-      /* Map some unicode characters to the VGA font, if possible.  */
-      switch (code)
-	{
-	case 0x2190:	/* left arrow */
-	  code = 0x1b;
-	  break;
-	case 0x2191:	/* up arrow */
-	  code = 0x18;
-	  break;
-	case 0x2192:	/* right arrow */
-	  code = 0x1a;
-	  break;
-	case 0x2193:	/* down arrow */
-	  code = 0x19;
-	  break;
-	case 0x2501:	/* horizontal line */
-	  code = 0xc4;
-	  break;
-	case 0x2503:	/* vertical line */
-	  code = 0xb3;
-	  break;
-	case 0x250F:	/* upper-left corner */
-	  code = 0xda;
-	  break;
-	case 0x2513:	/* upper-right corner */
-	  code = 0xbf;
-	  break;
-	case 0x2517:	/* lower-left corner */
-	  code = 0xc0;
-	  break;
-	case 0x251B:	/* lower-right corner */
-	  code = 0xd9;
-	  break;
-
-	default:
-	  return grub_font_get_glyph (code, bitmap, width);
-	}
-    }
+    return grub_font_get_glyph (code, bitmap, width);
 
   if (bitmap)
     grub_memcpy (bitmap, vga_font + code * CHAR_HEIGHT, CHAR_HEIGHT);
@@ -590,7 +552,7 @@
     .setcolorstate = grub_vga_setcolorstate,
     .setcolor = grub_vga_setcolor,
     .setcursor = grub_vga_setcursor,
-    .flags = 0,
+    .flags = GRUB_TERM_CP437_MENU,
     .next = 0
   };
 
diff -urN grub2.org/term/ieee1275/ofconsole.c grub2/term/ieee1275/ofconsole.c
--- grub2.org/term/ieee1275/ofconsole.c	2007-07-22 11:05:11.000000000 +0200
+++ grub2/term/ieee1275/ofconsole.c	2007-10-01 19:01:49.820330521 +0200
@@ -75,6 +75,7 @@
 grub_ofconsole_putchar (grub_uint32_t c)
 {
   char chr = c;
+  
   if (c == '\n')
     {
       grub_curr_y++;
@@ -86,6 +87,7 @@
       if (grub_curr_x > grub_ofconsole_width)
 	grub_putcode ('\n');
     }
+
   grub_ieee1275_write (stdout_ihandle, &chr, 1, 0);
 }
 
@@ -366,7 +368,7 @@
     .setcolor = grub_ofconsole_setcolor,
     .setcursor = grub_ofconsole_setcursor,
     .refresh = grub_ofconsole_refresh,
-    .flags = 0,
+    .flags = GRUB_TERM_SIMPLE_MENU,
     .next = 0
   };
 
diff -urN grub2.org/util/console.c grub2/util/console.c
--- grub2.org/util/console.c	2007-07-22 01:32:31.000000000 +0200
+++ grub2/util/console.c	2007-10-01 19:01:49.821330521 +0200
@@ -44,47 +44,6 @@
 static void
 grub_ncurses_putchar (grub_uint32_t c)
 {
-  /* Better than nothing.  */
-  switch (c)
-    {
-    case GRUB_TERM_DISP_LEFT:
-      c = '<';
-      break;
-
-    case GRUB_TERM_DISP_UP:
-      c = '^';
-      break;
-
-    case GRUB_TERM_DISP_RIGHT:
-      c = '>';
-      break;
-
-    case GRUB_TERM_DISP_DOWN:
-      c = 'v';
-      break;
-
-    case GRUB_TERM_DISP_HLINE:
-      c = '-';
-      break;
-
-    case GRUB_TERM_DISP_VLINE:
-      c = '|';
-      break;
-
-    case GRUB_TERM_DISP_UL:
-    case GRUB_TERM_DISP_UR:
-    case GRUB_TERM_DISP_LL:
-    case GRUB_TERM_DISP_LR:
-      c = '+';
-      break;
-
-    default:
-      /* ncurses does not support Unicode.  */
-      if (c > 0x7f)
-	c = '?';
-      break;
-    }
-  
   addch (c | grub_console_attr);
 }
 
@@ -302,7 +261,7 @@
     .setcolor = grub_ncurses_setcolor,
     .setcursor = grub_ncurses_setcursor,
     .refresh = grub_ncurses_refresh,
-    .flags = 0,
+    .flags = GRUB_TERM_SIMPLE_MENU,
     .next = 0
   };
 
diff -urN grub2.org/term/ieee1275/ofconsole.c grub2/term/ieee1275/ofconsole.c
--- grub2.org/term/ieee1275/ofconsole.c	2007-10-03 10:55:27.191943734 +0200
+++ grub2/term/ieee1275/ofconsole.c	2007-10-03 10:56:26.399943734 +0200
@@ -63,12 +63,8 @@
 static void
 grub_ofconsole_writeesc (const char *str)
 {
-  while (*str)
-    {
-      char chr = *(str++);
-      grub_ieee1275_write (stdout_ihandle, &chr, 1, 0);
-    }
-  
+  int len = grub_strlen(str);
+  grub_ieee1275_write (stdout_ihandle, str, len, 0);
 }
 
 static void
diff -urN grub2.org/term/ieee1275/ofconsole.c grub2/term/ieee1275/ofconsole.c
--- grub2.org/term/ieee1275/ofconsole.c	2007-10-01 18:02:39.000000000 +0200
+++ grub2/term/ieee1275/ofconsole.c	2007-10-01 18:06:33.000000000 +0200
@@ -135,43 +135,56 @@
 
   grub_ieee1275_read (stdin_ihandle, &c, 1, &actual);
 
-  if (actual > 0 && c == '\e')
+  if (actual > 0)
     {
-      grub_ieee1275_read (stdin_ihandle, &c, 1, &actual);
-      if (actual <= 0)
-	{
-	  *key = '\e';
-	  return 1;
-	}
+      if (c != '\e')
+      {
+        switch(c)
+        {
+          case 127:
+            /* Backspace */
+            c = '\b';
+            break;
+        }
+      }
+      else
+      {
+        grub_ieee1275_read (stdin_ihandle, &c, 1, &actual);
+        if (actual <= 0)
+	  {
+	    *key = '\e';
+	    return 1;
+	  }
       
-      if (c != 91)
-	return 0;
+        if (c != 91)
+	  return 0;
       
-      grub_ieee1275_read (stdin_ihandle, &c, 1, &actual);
-      if (actual <= 0)
-	return 0;
+        grub_ieee1275_read (stdin_ihandle, &c, 1, &actual);
+        if (actual <= 0)
+	  return 0;
       
-      switch (c)
-	{
-	case 65:
-	  /* Up: Ctrl-p.  */
-	  c = 16; 
-	  break;
-	case 66:
-	  /* Down: Ctrl-n.  */
-	  c = 14;
-	  break;
-	case 67:
-	  /* Right: Ctrl-f.  */
-	  c = 6;
-	  break;
-	case 68:
-	  /* Left: Ctrl-b.  */
-	  c = 2;
-	  break;
-	}
+        switch (c)
+	  {
+	  case 65:
+	    /* Up: Ctrl-p.  */
+	    c = 16; 
+	    break;
+	  case 66:
+	    /* Down: Ctrl-n.  */
+	    c = 14;
+	    break;
+	  case 67:
+	    /* Right: Ctrl-f.  */
+	    c = 6;
+	    break;
+	  case 68:
+	    /* Left: Ctrl-b.  */
+	    c = 2;
+	    break;
+	  }
+      }
     }
-  
+
   *key = c;
   return actual > 0;
 }
diff -urN grub2.org/include/grub/ieee1275/ieee1275.h grub2/include/grub/ieee1275/ieee1275.h
--- grub2.org/include/grub/ieee1275/ieee1275.h	2007-10-03 17:52:35.006425889 +0200
+++ grub2/include/grub/ieee1275/ieee1275.h	2007-10-03 16:45:56.000000000 +0200
@@ -82,6 +82,12 @@
 
   /* CodeGen firmware does not correctly implement "output-device output" */
   GRUB_IEEE1275_FLAG_BROKEN_OUTPUT,
+
+  /* In non fb mode default number of console rows is 24, but in fact it's 25 */
+  GRUB_IEEE1275_FLAG_NOFB_ROWS25,
+
+  /* Old Pegaos firmware does not accept cls escape sequence use workaround */
+  GRUB_IEEE1275_FLAG_NOCLS,
 };
 
 extern int EXPORT_FUNC(grub_ieee1275_test_flag) (enum grub_ieee1275_flag flag);
diff -urN grub2.org/kern/powerpc/ieee1275/cmain.c grub2/kern/powerpc/ieee1275/cmain.c
--- grub2.org/kern/powerpc/ieee1275/cmain.c	2007-10-03 17:52:35.007425889 +0200
+++ grub2/kern/powerpc/ieee1275/cmain.c	2007-10-03 16:49:21.000000000 +0200
@@ -73,6 +73,7 @@
     {
       /* Broken in all versions */
       grub_ieee1275_set_flag (GRUB_IEEE1275_FLAG_BROKEN_OUTPUT);
+      grub_ieee1275_set_flag (GRUB_IEEE1275_FLAG_NOFB_ROWS25);
 
       /* There are two incompatible ways of checking the version number.  Try
          both. */
@@ -98,6 +99,14 @@
 	      grub_ieee1275_set_flag (GRUB_IEEE1275_FLAG_NO_PARTITION_0);
 	      grub_ieee1275_set_flag (GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS);
 	    }
+	  /* It seems old firmware for Pegaos 1 do not accept cls escape then
+	     we need to emulate it using \n sequence */
+	  if (!grub_strcmp (tmp, "0.")
+	      || !grub_strcmp (tmp, "1.0")
+	      || !grub_strcmp (tmp, "1.1"))
+	    {
+	      grub_ieee1275_set_flag (GRUB_IEEE1275_FLAG_NOCLS);
+	    }
 	}
     }
 }
diff -urN grub2.org/term/ieee1275/ofconsole.c grub2/term/ieee1275/ofconsole.c
--- grub2.org/term/ieee1275/ofconsole.c	2007-10-03 17:52:35.009425889 +0200
+++ grub2/term/ieee1275/ofconsole.c	2007-10-03 17:40:31.000000000 +0200
@@ -29,6 +29,7 @@
 
 static grub_uint8_t grub_ofconsole_width;
 static grub_uint8_t grub_ofconsole_height;
+static grub_uint8_t grub_ofconsole_fb;
 
 static int grub_curr_x;
 static int grub_curr_y;
@@ -70,20 +71,40 @@
 static void
 grub_ofconsole_putchar (grub_uint32_t c)
 {
-  char chr = c;
-  
-  if (c == '\n')
-    {
+  char chr;
+
+  switch(c)
+  {
+    case '\a':
+      break;            
+    case '\n':
+      grub_putcode ('\r');
       grub_curr_y++;
+      if(grub_curr_y > (grub_ofconsole_height - 1))
+        /* Is this realy correct for all OF versions around ? */
+        grub_curr_y = grub_ofconsole_fb ?
+          grub_curr_y - 4 : grub_ofconsole_height - 1; 
+      break;
+    case '\r':
       grub_curr_x = 0;
-    }
-  else
-    {
+      break;
+    case '\b':
+      if(grub_curr_x > 0)
+        grub_curr_x--;
+      break;
+
+    default:
+      if(c == '\t')
+        c = ' ';
+
+      if (grub_curr_x >= (grub_ofconsole_width - 1))
+        grub_putcode ('\n');
+
       grub_curr_x++;
-      if (grub_curr_x > grub_ofconsole_width)
-	grub_putcode ('\n');
-    }
+      break;
+  }                                                                                                                                                                        
 
+  chr = c;
   grub_ieee1275_write (stdout_ihandle, &chr, 1, 0);
 }
 
@@ -228,7 +249,7 @@
 static grub_uint16_t
 grub_ofconsole_getxy (void)
 {
-  return ((grub_curr_x - 1) << 8) | grub_curr_y;
+  return (grub_curr_x << 8) | grub_curr_y;
 }
 
 static grub_uint16_t
@@ -270,6 +291,21 @@
 	      grub_free (val);
 	    }
 	}
+      if (! grub_ieee1275_get_property_length (options, "fb-mode",
+					       &lval) && lval != -1)
+	{
+	  val = grub_malloc (lval);
+	  if (val)
+	    {
+	      if (! grub_ieee1275_get_property (options, "fb-mode",
+						val, lval, 0))
+                {
+                  if (grub_strncmp (val, "0x0x0", 5) != 0)
+		    grub_ofconsole_fb = 1;
+                }
+	      grub_free (val);
+	    }
+	}
     }
 
   /* Use a small console by default.  */
@@ -278,6 +314,9 @@
   if (! grub_ofconsole_height)
     grub_ofconsole_height = 24;
 
+  if ( grub_ofconsole_fb == 0 && grub_ofconsole_height == 24 && grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_NOFB_ROWS25))
+    grub_ofconsole_height = 25;
+
   return (grub_ofconsole_width << 8) | grub_ofconsole_height;
 }
 
@@ -295,10 +334,20 @@
 static void
 grub_ofconsole_cls (void)
 {
-  /* Clear the screen.  Using serial console, screen(1) only recognizes the
-   * ANSI escape sequence.  Using video console, Apple Open Firmware (version
-   * 3.1.1) only recognizes the literal ^L.  So use both.  */
-  grub_ofconsole_writeesc ("\e[2J");
+  if (! grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_NOCLS))
+    {
+      /* Clear the screen.  Using serial console, screen(1) only recognizes the
+       * ANSI escape sequence.  Using video console, Apple Open Firmware (version
+       * 3.1.1) only recognizes the literal ^L.  So use both.  */
+      grub_ofconsole_writeesc ("\e[2J");
+    }
+  else
+    {
+      /* It seems no cls escape is available then simulate it using \n flood */
+      int x = (grub_ofconsole_height * 2) - grub_curr_y;
+      while(x--)
+        grub_putcode ('\n');
+    }
   grub_gotoxy (0, 0);
 }
 
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to