summaryrefslogtreecommitdiffhomepage
path: root/include/mrbconf.h
diff options
context:
space:
mode:
authorCremno <[email protected]>2013-03-08 18:20:54 +0100
committerCremno <[email protected]>2013-03-08 18:20:54 +0100
commitf719b0e7fff2d4754d91826b69d142c66635c3cf (patch)
treeee3e64abfb3b798dcc3acece7560931791717056 /include/mrbconf.h
parentb783311ec442d4b27f67ecb287c413cac36df147 (diff)
downloadmruby-f719b0e7fff2d4754d91826b69d142c66635c3cf.tar.gz
mruby-f719b0e7fff2d4754d91826b69d142c66635c3cf.zip
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.
Diffstat (limited to 'include/mrbconf.h')
-rw-r--r--include/mrbconf.h18
1 files changed, 18 insertions, 0 deletions
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 <inttypes.h>
#endif