summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-12-12 21:32:02 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-12-12 21:32:02 +0900
commit4078670bcaf47c13738e611b67678cbe6643c185 (patch)
tree214f21803946d709a6d1244aab24966485506a4c /src
parent9723d6e4ba45c404dc420021558b25ca0494c8d8 (diff)
downloadmruby-4078670bcaf47c13738e611b67678cbe6643c185.tar.gz
mruby-4078670bcaf47c13738e611b67678cbe6643c185.zip
mrb_p() should print mrb_obj_as_string() if #inspect does not return a string value
Diffstat (limited to 'src')
-rw-r--r--src/print.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/print.c b/src/print.c
index 6c561100f..b43936b13 100644
--- a/src/print.c
+++ b/src/print.c
@@ -27,8 +27,13 @@ MRB_API void
mrb_p(mrb_state *mrb, mrb_value obj)
{
#ifdef ENABLE_STDIO
- obj = mrb_funcall(mrb, obj, "inspect", 0);
- printstr(mrb, obj);
+ mrb_value val;
+
+ 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);
#endif
}