diff --git a/mongoose.c b/mongoose.c index 43c9634989dc64e10e5e0d38303031683f6551fc..0abee9a573cb65bcce212b9d223f961ac0b8075e 100644 --- a/mongoose.c +++ b/mongoose.c @@ -104,8 +104,8 @@ typedef long off_t; #define STRX(x) #x #define STR(x) STRX(x) #define __func__ __FILE__ ":" STR(__LINE__) -#define strtoull(x, y, z) strtoul(x, y, z) -#define strtoll(x, y, z) strtol(x, y, z) +#define strtoull(x, y, z) (unsigned __int64) _atoi64(x) +#define strtoll(x, y, z) _atoi64(x) #else #define __func__ __FUNCTION__ #define strtoull(x, y, z) _strtoui64(x, y, z) diff --git a/test/unit_test.c b/test/unit_test.c index 65bfd4bd4efceb4e2e86fbfbb74bf4f0f24c760c..2b777b35b93bdec899b94a3543c48286bb3d7e71 100644 --- a/test/unit_test.c +++ b/test/unit_test.c @@ -635,6 +635,13 @@ static void test_mg_get_cookie(void) { ASSERT(mg_get_cookie("a=1; b=2; c; d", "c", buf, sizeof(buf)) == -1); } +static void test_strtoll(void) { + ASSERT(strtoll("0", NULL, 10) == 0); + ASSERT(strtoll("123", NULL, 10) == 123); + ASSERT(strtoll("-34", NULL, 10) == -34); + ASSERT(strtoll("3566626116", NULL, 10) == 3566626116); +} + int __cdecl main(void) { test_mg_strcasestr(); test_alloc_vprintf(); @@ -654,6 +661,7 @@ int __cdecl main(void) { test_api_calls(); test_url_decode(); test_mg_get_cookie(); + test_strtoll(); #ifdef USE_LUA test_lua(); #endif