/* * call-seq: * ios.print() => nil * ios.print(obj, ...) => nil * * Writes the given object(s) to <em>ios</em>. The stream must be * opened for writing. If the output record separator (<code>$\\</code>) * is not <code>nil</code>, it will be appended to the output. If no * arguments are given, prints <code>$_</code>. Objects that aren't * strings will be converted by calling their <code>to_s</code> method. * With no argument, prints the contents of the variable <code>$_</code>. * Returns <code>nil</code>. * * $stdout.print("This is ", 100, " percent.\n") * * <em>produces:</em> * * This is 100 percent. */ VALUE rb_io_print(argc, argv, out) int argc; VALUE *argv; VALUE out; { int i; VALUE line; /* if no argument given, print `$_' */ if (argc == 0) { argc = 1; line = rb_lastline_get(); argv = &line; } for (i=0; i<argc; i++) { if (!NIL_P(rb_output_fs) && i>0) { rb_io_write(out, rb_output_fs); } switch (TYPE(argv[i])) { case T_NIL: rb_io_write(out, rb_str_new2("nil")); break; default: rb_io_write(out, argv[i]); break; } } if (!NIL_P(rb_output_rs)) { rb_io_write(out, rb_output_rs); } return Qnil; }