Usermode/libc - Fixed %x/%X being signed in printf
[tpg/acess2.git] / Usermode / Libraries / libc.so_src / printf.c
index bf07de4..1b61cba 100644 (file)
@@ -1,4 +1,4 @@
-/*
+#include <string.h>/*
  * Acess2 C Library
  * - By John Hodge (thePowersGang)
  *
@@ -200,7 +200,7 @@ EXPORT int _vcprintf_int(printf_putch_t putch_cb, void *putch_h, const char *for
                                _addchar('0');
                                _addchar(c);
                        }
-                       arg = bLongLong ? va_arg(args, int64_t) : va_arg(args, int32_t);
+                       arg = bLongLong ? va_arg(args, uint64_t) : va_arg(args, uint32_t);
                        pos += _printf_itoa(putch_cb, putch_h, arg, 16, c=='X',
                                FALSE, '\0', precision, minSize,cNumPad,bJustifyLeft);
                        break;
@@ -473,13 +473,13 @@ int expand_double(double num, uint64_t *Significand, int16_t *Exponent, int *Sig
 //     printf("%llx %i %i %llx\n", *bit_rep, (int)*SignIsNeg, (int)*Exponent, *Significand);
 
        // Subnormals
-       if( *Exponent == -1023 && *Significand != 0 )
+       if( *Exponent == -0x3FF && *Significand != 0 )
                return 1;
        // Infinity
-       if( *Exponent == 0x800 && *Significand == 0)
+       if( *Exponent == 0x400 && *Significand == 0)
                return 2;
        // NaNs
-       if( *Exponent == 0x800 && *Significand != 0)
+       if( *Exponent == 0x400 && *Significand != 0)
                return 3;
 
        return 0;

UCC git Repository :: git.ucc.asn.au