2010-01-22 Vladimir Serbinenko <phcoder@gmail.com>
* term/ieee1275/ofconsole.c (grub_ofconsole_setcolorstate): Allocate on stack since heap may be unavailable at that point. (grub_ofconsole_gotoxy): Likewise.
This commit is contained in:
parent
454fcd1c9b
commit
4b358c0a56
2 changed files with 12 additions and 10 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2010-01-22 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
|
* term/ieee1275/ofconsole.c (grub_ofconsole_setcolorstate): Allocate on
|
||||||
|
stack since heap may be unavailable at that point.
|
||||||
|
(grub_ofconsole_gotoxy): Likewise.
|
||||||
|
|
||||||
2010-01-22 Vladimir Serbinenko <phcoder@gmail.com>
|
2010-01-22 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
* configure.ac: Check for _restgpr_14_x.
|
* configure.ac: Check for _restgpr_14_x.
|
||||||
|
|
|
@ -109,7 +109,7 @@ grub_ofconsole_getcharwidth (grub_uint32_t c __attribute__((unused)))
|
||||||
static void
|
static void
|
||||||
grub_ofconsole_setcolorstate (grub_term_color_state state)
|
grub_ofconsole_setcolorstate (grub_term_color_state state)
|
||||||
{
|
{
|
||||||
char *setcol;
|
char setcol[256];
|
||||||
int fg;
|
int fg;
|
||||||
int bg;
|
int bg;
|
||||||
|
|
||||||
|
@ -128,10 +128,8 @@ grub_ofconsole_setcolorstate (grub_term_color_state state)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
setcol = grub_xasprintf ("\e[3%dm\e[4%dm", fg, bg);
|
grub_snprintf (setcol, sizeof (setcol), "\e[3%dm\e[4%dm", fg, bg);
|
||||||
if (setcol)
|
grub_ofconsole_writeesc (setcol);
|
||||||
grub_ofconsole_writeesc (setcol);
|
|
||||||
grub_free (setcol);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -288,14 +286,12 @@ grub_ofconsole_gotoxy (grub_uint8_t x, grub_uint8_t y)
|
||||||
{
|
{
|
||||||
if (! grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_NO_ANSI))
|
if (! grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_NO_ANSI))
|
||||||
{
|
{
|
||||||
char *s;
|
char s[256];
|
||||||
grub_curr_x = x;
|
grub_curr_x = x;
|
||||||
grub_curr_y = y;
|
grub_curr_y = y;
|
||||||
|
|
||||||
s = grub_xasprintf ("\e[%d;%dH", y + 1, x + 1);
|
grub_snprintf (s, sizeof (s), "\e[%d;%dH", y + 1, x + 1);
|
||||||
if (s)
|
grub_ofconsole_writeesc (s);
|
||||||
grub_ofconsole_writeesc (s);
|
|
||||||
grub_free (s);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue