From: johanknol Date: Mon, 12 Mar 2001 11:35:40 +0000 (+0000) Subject: fixed the printf ("%d\n",0) bug X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=7bfbbf4ff692d5fa8f9ed8c97808878fef6519e7;p=fw%2Fsdcc fixed the printf ("%d\n",0) bug git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@678 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- diff --git a/device/lib/printfl.c b/device/lib/printfl.c index 6fe4e342..6e1012ec 100644 --- a/device/lib/printfl.c +++ b/device/lib/printfl.c @@ -58,19 +58,19 @@ static void pvalhex( long val) if (!long_flag) lval &= 0x0000ffff; - if (short_flag) + if (short_flag) lval &= 0x000000ff; - while (lval) { + do { ch = "0123456789ABCDEF"[(unsigned short)lval & 0x0f]; _asm push _ch _endasm; lval /= 16; - } + } while (lval); while (sp != SP) { _asm pop _ch _endasm; putchar(ch); - } + } } @@ -92,11 +92,11 @@ static void pvaloct(long val) if (short_flag) lval &= 0x000000ff; - while (lval) { + do { ch = (lval % 8) + '0'; _asm push _ch _endasm; - lval = lval / 8; - } + lval = lval / 8; + } while (lval); if (sign) { ch = '-'; @@ -123,11 +123,11 @@ static void pvaldec(long val ) sign = 0; } - while (lval) { + do { ch = (lval % 10) + '0'; _asm push _ch _endasm; - lval = lval / 10; - } + lval = lval / 10; + } while (lval); if (sign) { ch = '-';