summaryrefslogtreecommitdiffstats
path: root/src/utils.c
diff options
context:
space:
mode:
authorQuentin Ladevie <qladevie@virtuos.com.cn>2024-08-23 14:02:40 +0200
committerQuentin Ladevie <qladevie@virtuos.com.cn>2024-08-23 14:02:40 +0200
commit41d163a8a9be2f6d94e42157ad695fbe2cd000ae (patch)
treec09d7fccb0a182d79b306f5c21157c37b6c616e9 /src/utils.c
parentd3abac5411a2961d8bbef6eef56d1201f2113f40 (diff)
Fix compiler erros with MSVC pro
Fix atou64
Diffstat (limited to 'src/utils.c')
-rw-r--r--src/utils.c27
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;