From f719b0e7fff2d4754d91826b69d142c66635c3cf Mon Sep 17 00:00:00 2001 From: Cremno Date: Fri, 8 Mar 2013 18:20:54 +0100 Subject: define and use print format macros for mrb_int For portability: %ld can't be used to print a 64-bit mrb_int on WIN(32|64) because long is 32-bit wide. --- include/mrbconf.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'include') diff --git a/include/mrbconf.h b/include/mrbconf.h index 52490ceba..b665fb9f7 100644 --- a/include/mrbconf.h +++ b/include/mrbconf.h @@ -71,12 +71,22 @@ typedef int64_t mrb_int; # define MRB_INT_MIN INT64_MIN # define MRB_INT_MAX INT64_MAX +# define PRIdMRB_INT PRId64 +# define PRIiMRB_INT PRIi64 +# define PRIoMRB_INT PRIo64 +# define PRIxMRB_INT PRIx64 +# define PRIXMRB_INT PRIX64 # define str_to_mrb_int(buf) strtoll(buf, NULL, 10) # endif #else typedef int32_t mrb_int; # define MRB_INT_MIN INT32_MIN # define MRB_INT_MAX INT32_MAX +# define PRIdMRB_INT PRId32 +# define PRIiMRB_INT PRIi32 +# define PRIoMRB_INT PRIo32 +# define PRIxMRB_INT PRIx32 +# define PRIXMRB_INT PRIX32 # define str_to_mrb_int(buf) strtol(buf, NULL, 10) #endif typedef short mrb_sym; @@ -105,7 +115,15 @@ typedef short mrb_sym; # define isinf(n) (!_finite(n) && !_isnan(n)) # define strtoll _strtoi64 # define PRId32 "I32d" +# define PRIi32 "I32i" +# define PRIo32 "I32o" +# define PRIx32 "I32x" +# define PRIX32 "I32X" # define PRId64 "I64d" +# define PRIi64 "I64i" +# define PRIo64 "I64o" +# define PRIx64 "I64x" +# define PRIX64 "I64X" #else # include #endif -- cgit v1.2.3