Merge pull request #3627 from cesanta/z

Add %zu printf support
This commit is contained in:
Sergio R. Caprile
2026-07-08 10:56:32 -03:00
committed by GitHub
3 changed files with 15 additions and 0 deletions
+1
View File
@@ -2667,6 +2667,7 @@ size_t mg_vxprintf(void (*out)(char, void *), void *param, const char *fmt,
is_long++, c = fmt[++i];
if (c == 'l') is_long++, c = fmt[++i];
}
if (c == 'z') is_long = 1, c = fmt[++i];
if (c == 'p') x = 1, is_long = 1;
if (c == 'd' || c == 'u' || c == 'x' || c == 'X' || c == 'p' ||
c == 'g' || c == 'f') {
+1
View File
@@ -173,6 +173,7 @@ size_t mg_vxprintf(void (*out)(char, void *), void *param, const char *fmt,
is_long++, c = fmt[++i];
if (c == 'l') is_long++, c = fmt[++i];
}
if (c == 'z') is_long = 1, c = fmt[++i];
if (c == 'p') x = 1, is_long = 1;
if (c == 'd' || c == 'u' || c == 'x' || c == 'X' || c == 'p' ||
c == 'g' || c == 'f') {
+13
View File
@@ -2321,6 +2321,19 @@ static void test_str(void) {
ASSERT(chkdbl(mg_str("123e-3"), 0.123));
}
#if defined(_MSC_VER) && _MSC_VER < 1700
// VC98 does not have '%zu'
#else
ASSERT(sn("%zu", 0));
ASSERT(sn("%zu", -1));
ASSERT(sn("%zu", -2));
ASSERT(sn("%zd", 123));
#if !defined(_MSC_VER)
ASSERT(sn("%zd", -3)); // MSVC casts to unsigned
#endif
ASSERT(sn("%zu", 0x1234));
#endif
ASSERT(sn("%d", 0));
ASSERT(sn("%d", 1));
ASSERT(sn("%d", -1));