diff options
Diffstat (limited to 'ext/fiddle/function.c')
-rw-r--r-- | ext/fiddle/function.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/ext/fiddle/function.c b/ext/fiddle/function.c index 066602ea86..56f949ed03 100644 --- a/ext/fiddle/function.c +++ b/ext/fiddle/function.c @@ -1,5 +1,14 @@ #include <fiddle.h> +#ifdef PRIsVALUE +# define RB_OBJ_CLASSNAME(obj) rb_obj_class(obj) +# define RB_OBJ_STRING(obj) (obj) +#else +# define PRIsVALUE "s" +# define RB_OBJ_CLASSNAME(obj) rb_obj_classname(obj) +# define RB_OBJ_STRING(obj) StringValueCStr(obj) +#endif + VALUE cFiddleFunction; static void @@ -56,7 +65,8 @@ parse_keyword_arg_i(VALUE key, VALUE value, VALUE self) if (key == ID2SYM(rb_intern("name"))) { rb_iv_set(self, "@name", value); } else { - rb_raise(rb_eArgError, "unknown keyword: %"PRIsVALUE, key); + rb_raise(rb_eArgError, "unknown keyword: %"PRIsVALUE, + RB_OBJ_STRING(key)); } return ST_CONTINUE; } |