nyx: remove negative decimal external handling

This commit is contained in:
CTCaer
2022-05-08 05:32:21 +03:00
parent c2869703af
commit ae394d9f37
3 changed files with 24 additions and 20 deletions

View File

@@ -23,6 +23,8 @@
gfx_ctxt_t gfx_ctxt;
gfx_con_t gfx_con;
static bool gfx_con_init_done = false;
static const u8 _gfx_font[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 032 ( )
0x00, 0x30, 0x30, 0x18, 0x18, 0x00, 0x0C, 0x00, // Char 033 (!)
@@ -154,6 +156,8 @@ void gfx_con_init()
gfx_con.fillbg = 1;
gfx_con.bgcol = 0xFF000000;
gfx_con.mute = 0;
gfx_con_init_done = true;
}
void gfx_con_setcol(u32 fgcol, int fillbg, u32 bgcol)
@@ -295,7 +299,7 @@ void gfx_putc(char c)
void gfx_puts(char *s)
{
if (!s || gfx_con.mute)
if (!s || !gfx_con_init_done || gfx_con.mute)
return;
for (; *s; s++)
@@ -308,10 +312,19 @@ static void _gfx_putn(u32 v, int base, char fill, int fcnt)
static const char digits[] = "0123456789ABCDEFghijklmnopqrstuvwxyz";
char *p;
int c = fcnt;
bool negative = false;
if (base > 36)
return;
// Account for negative numbers.
if (base == 10 && v & 0x80000000)
{
negative = true;
v = (int)v * -1;
c--;
}
p = buf + 64;
*p = 0;
do
@@ -321,9 +334,12 @@ static void _gfx_putn(u32 v, int base, char fill, int fcnt)
v /= base;
} while (v);
if (negative)
*--p = '-';
if (fill != 0)
{
while (c > 0)
while (c > 0 && p > buf)
{
*--p = fill;
c--;
@@ -335,7 +351,7 @@ static void _gfx_putn(u32 v, int base, char fill, int fcnt)
void gfx_printf(const char *fmt, ...)
{
if (gfx_con.mute)
if (!gfx_con_init_done || gfx_con.mute)
return;
va_list ap;
@@ -411,7 +427,7 @@ void gfx_printf(const char *fmt, ...)
void gfx_hexdump(u32 base, const void *buf, u32 len)
{
if (gfx_con.mute)
if (!gfx_con_init_done || gfx_con.mute)
return;
u8 *buff = (u8 *)buf;