/* * call-seq: * ios.gets(sep_string=$/) => string or nil * * Reads the next ``line'' from the I/O stream; lines are separated by * <i>sep_string</i>. A separator of <code>nil</code> reads the entire * contents, and a zero-length separator reads the input a paragraph at * a time (two successive newlines in the input separate paragraphs). * The stream must be opened for reading or an <code>IOError</code> * will be raised. The line read in will be returned and also assigned * to <code>$_</code>. Returns <code>nil</code> if called at end of * file. * * File.new("testfile").gets #=> "This is line one\n" * $_ #=> "This is line one\n" */ static VALUE rb_io_gets_m(argc, argv, io) int argc; VALUE *argv; VALUE io; { VALUE rs, str; if (argc == 0) { rs = rb_rs; } else { rb_scan_args(argc, argv, "1", &rs); if (!NIL_P(rs)) StringValue(rs); } str = rb_io_getline(rs, io); rb_lastline_set(str); return str; }