diff options
| -rw-r--r-- | include/mrbconf.h | 18 | ||||
| -rw-r--r-- | mrbgems/mruby-numeric-ext/src/numeric_ext.c | 2 | ||||
| -rw-r--r-- | mrbgems/mruby-struct/src/struct.c | 18 | ||||
| -rw-r--r-- | src/array.c | 2 |
4 files changed, 32 insertions, 8 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 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 33997b294..e21ac77d0 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)); } } @@ -577,10 +578,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]; } @@ -603,7 +606,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); @@ -656,11 +660,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 97f76f8da..5d7b0e690 100644 --- a/src/array.c +++ b/src/array.c @@ -577,7 +577,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) { |
