Use inttypes for `snprintf()`
MODIFY
include/mruby/value.h
include/mruby/value.h
@@ -41,12 +41,15 @@ struct mrb_state;
#if defined _MSC_VER && _MSC_VER < 1800
# define PRIo64 "llo"
# define PRId64 "lld"
+# define PRIu64 "llu"
# define PRIx64 "llx"
# define PRIo16 "ho"
# define PRId16 "hd"
+# define PRIu16 "hu"
# define PRIx16 "hx"
# define PRIo32 "o"
# define PRId32 "d"
+# define PRIu32 "u"
# define PRIx32 "x"
#else
# include <inttypes.h>

MODIFY
mrbgems/mruby-pack/src/pack.c
mrbgems/mruby-pack/src/pack.c
@@ -237,7 +237,7 @@ unpack_l(mrb_state *mrb, const unsigned char *src, int srclen, mrb_value ary, un
int32_t sl = ul;
#ifndef MRB_INT64
if (!FIXABLE(sl)) {
- snprintf(msg, sizeof(msg), "cannot unpack to Fixnum: %ld", (long)sl);
+ snprintf(msg, sizeof(msg), "cannot unpack to Fixnum: %" PRId32, sl);
mrb_raise(mrb, E_RANGE_ERROR, msg);
}
#endif
@@ -245,7 +245,7 @@ unpack_l(mrb_state *mrb, const unsigned char *src, int srclen, mrb_value ary, un
} else {
#ifndef MRB_INT64
if (!POSFIXABLE(ul)) {
- snprintf(msg, sizeof(msg), "cannot unpack to Fixnum: %lu", (unsigned long)ul);
+ snprintf(msg, sizeof(msg), "cannot unpack to Fixnum: %" PRIu32, ul);
mrb_raise(mrb, E_RANGE_ERROR, msg);
}
#endif
@@ -307,13 +307,13 @@ unpack_q(mrb_state *mrb, const unsigned char *src, int srclen, mrb_value ary, un
if (flags & PACK_FLAG_SIGNED) {
int64_t sll = ull;
if (!FIXABLE(sll)) {
- snprintf(msg, sizeof(msg), "cannot unpack to Fixnum: %lld", (long long)sll);
+ snprintf(msg, sizeof(msg), "cannot unpack to Fixnum: %" PRId64, sll);
mrb_raise(mrb, E_RANGE_ERROR, msg);
}
n = sll;
} else {
if (!POSFIXABLE(ull)) {
- snprintf(msg, sizeof(msg), "cannot unpack to Fixnum: %llu", (unsigned long long)ull);
+ snprintf(msg, sizeof(msg), "cannot unpack to Fixnum: %" PRIu64, ull);
mrb_raise(mrb, E_RANGE_ERROR, msg);
}
n = ull;

Use inttypes for `snprintf()`