summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/mrbconf.h18
-rw-r--r--mrbgems/mruby-numeric-ext/src/numeric_ext.c2
-rw-r--r--mrbgems/mruby-struct/src/struct.c18
-rw-r--r--src/array.c2
4 files changed, 32 insertions, 8 deletions
diff --git a/include/mrbconf.h b/include/mrbconf.h
index a6914cdb4..0caa3f90e 100644
--- a/include/mrbconf.h
+++ b/include/mrbconf.h
@@ -77,6 +77,11 @@
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
#elif defined(MRB_INT16)
@@ -88,6 +93,11 @@
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;
@@ -116,7 +126,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"
# ifdef __cplusplus
typedef bool mrb_bool;
# else
diff --git a/mrbgems/mruby-numeric-ext/src/numeric_ext.c b/mrbgems/mruby-numeric-ext/src/numeric_ext.c
index b2c0e7986..1e5d5f5d9 100644
--- a/mrbgems/mruby-numeric-ext/src/numeric_ext.c
+++ b/mrbgems/mruby-numeric-ext/src/numeric_ext.c
@@ -9,7 +9,7 @@ mrb_int_chr(mrb_state *mrb, mrb_value x)
chr = mrb_fixnum(x);
if (chr >= (1 << CHAR_BIT)) {
- mrb_raisef(mrb, E_RANGE_ERROR, "%ld out of char range", chr);
+ mrb_raisef(mrb, E_RANGE_ERROR, "%" PRIdMRB_INT " out of char range", chr);
}
c = (char)chr;
diff --git a/mrbgems/mruby-struct/src/struct.c b/mrbgems/mruby-struct/src/struct.c
index 082843f12..da3200fb9 100644
--- a/mrbgems/mruby-struct/src/struct.c
+++ b/mrbgems/mruby-struct/src/struct.c
@@ -66,7 +66,8 @@ mrb_struct_members(mrb_state *mrb, mrb_value s)
mrb_value members = mrb_struct_s_members(mrb, mrb_obj_value(mrb_obj_class(mrb, s)));
if (!strcmp(mrb_class_name(mrb, mrb_obj_class(mrb, s)), "Struct")) {
if (RSTRUCT_LEN(s) != RARRAY_LEN(members)) {
- mrb_raisef(mrb, E_TYPE_ERROR, "struct size differs (%ld required %ld given)",
+ mrb_raisef(mrb, E_TYPE_ERROR,
+ "struct size differs (%" PRIdMRB_INT " required %" PRIdMRB_INT " given)",
RARRAY_LEN(members), RSTRUCT_LEN(s));
}
}
@@ -578,10 +579,12 @@ mrb_struct_aref_n(mrb_state *mrb, mrb_value s, mrb_value idx)
i = mrb_fixnum(idx);
if (i < 0) i = RSTRUCT_LEN(s) + i;
if (i < 0)
- mrb_raisef(mrb, E_INDEX_ERROR, "offset %ld too small for struct(size:%ld)",
+ mrb_raisef(mrb, E_INDEX_ERROR,
+ "offset %" PRIdMRB_INT " too small for struct(size:%" PRIdMRB_INT ")",
i, RSTRUCT_LEN(s));
if (RSTRUCT_LEN(s) <= i)
- mrb_raisef(mrb, E_INDEX_ERROR, "offset %ld too large for struct(size:%ld)",
+ mrb_raisef(mrb, E_INDEX_ERROR,
+ "offset %" PRIdMRB_INT " too large for struct(size:%" PRIdMRB_INT ")",
i, RSTRUCT_LEN(s));
return RSTRUCT_PTR(s)[i];
}
@@ -604,7 +607,8 @@ mrb_struct_aset_id(mrb_state *mrb, mrb_value s, mrb_sym id, mrb_value val)
members = mrb_struct_members(mrb, s);
len = RARRAY_LEN(members);
if (RSTRUCT_LEN(s) != len) {
- mrb_raisef(mrb, E_TYPE_ERROR, "struct size differs (%ld required %ld given)",
+ mrb_raisef(mrb, E_TYPE_ERROR,
+ "struct size differs (%" PRIdMRB_INT " required %" PRIdMRB_INT " given)",
len, RSTRUCT_LEN(s));
}
ptr = RSTRUCT_PTR(s);
@@ -657,11 +661,13 @@ mrb_struct_aset(mrb_state *mrb, mrb_value s)
i = mrb_fixnum(idx);
if (i < 0) i = RSTRUCT_LEN(s) + i;
if (i < 0) {
- mrb_raisef(mrb, E_INDEX_ERROR, "offset %ld too small for struct(size:%ld)",
+ mrb_raisef(mrb, E_INDEX_ERROR,
+ "offset %" PRIdMRB_INT " too small for struct(size:%" PRIdMRB_INT ")",
i, RSTRUCT_LEN(s));
}
if (RSTRUCT_LEN(s) <= i) {
- mrb_raisef(mrb, E_INDEX_ERROR, "offset %ld too large for struct(size:%ld)",
+ mrb_raisef(mrb, E_INDEX_ERROR,
+ "offset %" PRIdMRB_INT " too large for struct(size:%" PRIdMRB_INT ")",
i, RSTRUCT_LEN(s));
}
return RSTRUCT_PTR(s)[i] = val;
diff --git a/src/array.c b/src/array.c
index 61b27a678..ba289997f 100644
--- a/src/array.c
+++ b/src/array.c
@@ -578,7 +578,7 @@ mrb_ary_set(mrb_state *mrb, mrb_value ary, mrb_int n, mrb_value val) /* rb_ary_s
if (n < 0) {
n += a->len;
if (n < 0) {
- mrb_raisef(mrb, E_INDEX_ERROR, "index %ld out of array", n - a->len);
+ mrb_raisef(mrb, E_INDEX_ERROR, "index %" PRIdMRB_INT " out of array", n - a->len);
}
}
if (a->len <= (int)n) {