X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/84d85ea7b7bba78431600369cf1717166e156cd0..cd09c4b222e4ddf45a42522563ae2471a829d1c8:/lunaix-os/libs/libc/stdlib/itoa.c diff --git a/lunaix-os/libs/libc/stdlib/itoa.c b/lunaix-os/libs/libc/stdlib/itoa.c index 3d0699e..d7920b4 100644 --- a/lunaix-os/libs/libc/stdlib/itoa.c +++ b/lunaix-os/libs/libc/stdlib/itoa.c @@ -1,4 +1,5 @@ #define __LUNAIX_LIBC +#include #include char base_char[] = "0123456789abcdefghijklmnopqrstuvwxyz"; @@ -35,10 +36,8 @@ char* __itoa_internal(int value, char* str, int base, unsigned int* size) { if (value < 0 && base == 10) { - unsigned int msk = value >> 31; - // evil bit level hack for abs() - unsigned int _v = (unsigned int)((value + msk) ^ msk); str[0] = '-'; + unsigned int _v = (unsigned int)(-value); __uitoa_internal(_v, str + 1, base, size); } else { __uitoa_internal(value, str, base, size); @@ -50,5 +49,5 @@ __itoa_internal(int value, char* str, int base, unsigned int* size) char* itoa(int value, char* str, int base) { - return __itoa_internal(value, str, base, (void*)0); + return __itoa_internal(value, str, base, NULL); } \ No newline at end of file