mrb_p() should print mrb_obj_as_string() if #inspect does not return a string value

parent 9723d6e4
...@@ -27,8 +27,13 @@ MRB_API void ...@@ -27,8 +27,13 @@ MRB_API void
mrb_p(mrb_state *mrb, mrb_value obj) mrb_p(mrb_state *mrb, mrb_value obj)
{ {
#ifdef ENABLE_STDIO #ifdef ENABLE_STDIO
obj = mrb_funcall(mrb, obj, "inspect", 0); mrb_value val;
printstr(mrb, obj);
val = mrb_funcall(mrb, obj, "inspect", 0);
if (!mrb_string_p(val)) {
val = mrb_obj_as_string(mrb, obj);
}
printstr(mrb, val);
putc('\n', stdout); putc('\n', stdout);
#endif #endif
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment