Commit 2728f302 authored by Yukihiro Matsumoto's avatar Yukihiro Matsumoto

implement Kernel#p in Ruby

parent f7406435
......@@ -31,4 +31,19 @@ module Kernel
end
__printstr__ "\n" if len == 0
end
##
# Print human readable object description
#
# ISO 15.3.1.3.34
def p(*args)
i = 0
len = args.size
while i < len
__printstr__ args[i].inspect
__printstr__ "\n"
i += 1
end
args[0]
end
end
......@@ -38,20 +38,6 @@ mrb_p(mrb_state *mrb, mrb_value obj)
/* 15.3.1.2.9 */
/* 15.3.1.3.34 */
static mrb_value
p_m(mrb_state *mrb, mrb_value self)
{
int argc, i;
mrb_value *argv = NULL;
mrb_get_args(mrb, "*", &argv, &argc);
for (i=0; i<argc; i++) {
mrb_p(mrb, argv[i]);
}
return argv ? argv[0] : mrb_nil_value();
}
mrb_value
mrb_printstr(mrb_state *mrb, mrb_value self)
{
......@@ -71,7 +57,6 @@ mrb_init_print(mrb_state *mrb)
krn = mrb->kernel_module;
mrb_define_method(mrb, krn, "__printstr__", mrb_printstr, ARGS_REQ(1));
mrb_define_method(mrb, krn, "p", p_m, ARGS_ANY()); /* 15.3.1.3.34 */
}
......
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