diff options
Diffstat (limited to 'src/utils.c')
| -rw-r--r-- | src/utils.c | 27 |
1 files changed, 5 insertions, 22 deletions
diff --git a/src/utils.c b/src/utils.c index f450e36..f7994f9 100644 --- a/src/utils.c +++ b/src/utils.c @@ -39,24 +39,6 @@ void u64toa(u64 number, char* str, u32 base) { } u64 atou64(const char* str, u32 len) { - static char codes[16U] = { - '0', - '1', - '2', - '3', - '4', - '5', - '6', - '7', - '8', - '9', - 'A', - 'B', - 'C', - 'D', - 'E', - 'F', - }; u64 number = 0U; u32 base = 10U; const char* c = str; @@ -67,18 +49,19 @@ u64 atou64(const char* str, u32 len) { } for (; (u32)(c - str) < len; c++) { + number *= base; u32 offset = 0U; if ('0' <= *c && *c <= '9') { offset = 48U; } else if ('a' <= *c && *c <= 'f') { - offset = 97U; + offset = 87U; } else if ('A' <= *c && *c <= 'F') { - offset = 65U; + offset = 55U; } else { return 0U; } - number += (*c - offset) * ((len - (u32)(c - str)) * base); + number += (*c - offset); } return number; @@ -87,7 +70,7 @@ u64 atou64(const char* str, u32 len) { void print(const char* format, ...) { va_list args; va_start(args, format); - char formatted_str[4096U] = {}; + char formatted_str[4096U] = { 0 }; STRSAFE_LPSTR cur_char = formatted_str; const char* cur_fmt = format; |
