diff options
| author | Quentin Ladevie <qladevie@virtuos.com.cn> | 2024-08-23 14:02:40 +0200 |
|---|---|---|
| committer | Quentin Ladevie <qladevie@virtuos.com.cn> | 2024-08-23 14:02:40 +0200 |
| commit | 41d163a8a9be2f6d94e42157ad695fbe2cd000ae (patch) | |
| tree | c09d7fccb0a182d79b306f5c21157c37b6c616e9 /src/utils.c | |
| parent | d3abac5411a2961d8bbef6eef56d1201f2113f40 (diff) | |
Fix compiler erros with MSVC pro
Fix atou64
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; |
