From 8f362eaf8a49af23c2c68d7d84b24c5211578881 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Fri, 30 Apr 2021 23:47:47 +0900 Subject: io.rb,print.rb: `puts` to expand array arguments. As CRuby behaves. --- mrbgems/mruby-print/mrblib/print.rb | 31 ++++++++++++++++++++++++++++ mrbgems/mruby-print/src/print.c | 41 ------------------------------------- 2 files changed, 31 insertions(+), 41 deletions(-) (limited to 'mrbgems/mruby-print') diff --git a/mrbgems/mruby-print/mrblib/print.rb b/mrbgems/mruby-print/mrblib/print.rb index 6383901ee..96ee71fe9 100644 --- a/mrbgems/mruby-print/mrblib/print.rb +++ b/mrbgems/mruby-print/mrblib/print.rb @@ -19,6 +19,37 @@ module Kernel args.__svalue end + # 15.3.1.2.10 + # 15.3.1.3.35 + def print(*args) + i = 0 + len = args.size + while i < len + __printstr__ args[i].to_s + i += 1 + end + end + + # 15.3.1.2.11 + # 15.3.1.3.39 + def puts(*args) + i = 0 + len = args.size + while i < len + s = args[i] + if s.kind_of?(Array) + puts(*s) + else + s = s.to_s + __printstr__ s + __printstr__ "\n" if (s[-1] != "\n") + end + i += 1 + end + __printstr__ "\n" if len == 0 + nil + end + def printf(*args) __printstr__(sprintf(*args)) nil diff --git a/mrbgems/mruby-print/src/print.c b/mrbgems/mruby-print/src/print.c index 10f140086..c98bfb7bf 100644 --- a/mrbgems/mruby-print/src/print.c +++ b/mrbgems/mruby-print/src/print.c @@ -47,53 +47,12 @@ mrb_printstr(mrb_state *mrb, mrb_value self) return s; } -/* 15.3.1.2.10 */ -/* 15.3.1.3.35 */ -static mrb_value -mrb_print(mrb_state *mrb, mrb_value self) -{ - mrb_int argc, i; - const mrb_value *argv; - - mrb_get_args(mrb, "*", &argv, &argc); - for (i=0; ikernel_module; mrb_define_method(mrb, krn, "__printstr__", mrb_printstr, MRB_ARGS_REQ(1)); - mrb_define_method(mrb, krn, "print", mrb_print, MRB_ARGS_ANY()); - mrb_define_method(mrb, krn, "puts", mrb_puts, MRB_ARGS_ANY()); } void -- cgit v1.2.3