]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2010-02-14 Vladimir Serbinenko <phcoder@gmail.com>
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 14 Feb 2010 13:51:06 +0000 (14:51 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 14 Feb 2010 13:51:06 +0000 (14:51 +0100)
* term/ieee1275/ofconsole.c (grub_ofconsole_putchar): Don't output
non-ASCII characters.

ChangeLog
term/ieee1275/ofconsole.c

index 40339456013e7874c6c812e068d4714e33eae452..a75dd8636b4f38f167148ea9070271261ec8d5f8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-02-14  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * term/ieee1275/ofconsole.c (grub_ofconsole_putchar): Don't output
+       non-ASCII characters.
+
 2010-02-14  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Enclose
index 6073e25d26216fbb5e50fbf0d96f2bbb9a58c189..86b150a33282217cb37f9895f74da584361a8408 100644 (file)
@@ -77,7 +77,52 @@ grub_ofconsole_writeesc (const char *str)
 static void
 grub_ofconsole_putchar (grub_uint32_t c)
 {
-  char chr = c;
+  char chr;
+
+  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;
+       }
+    }
+
+  chr = c;
+
   if (c == '\n')
     {
       grub_curr_y++;