diff --git a/ext/io/console/console.c b/ext/io/console/console.c index dd15c8b015..b24ac74f27 100644 --- a/ext/io/console/console.c +++ b/ext/io/console/console.c @@ -1564,7 +1564,7 @@ static VALUE str_chomp(VALUE str) { if (!NIL_P(str)) { - rb_funcallv(str, id_chomp_bang, 0, 0); + rb_funcallv(str, id_chomp_bang, 1, &rb_default_rs); } return str; } diff --git a/test/io/console/test_io_console.rb b/test/io/console/test_io_console.rb index 972b2e4cb4..fd0e57b8a5 100644 --- a/test/io/console/test_io_console.rb +++ b/test/io/console/test_io_console.rb @@ -258,6 +258,15 @@ defined?(PTY) and defined?(IO.console) and TestIO_Console.class_eval do assert_equal("\r\n", r.gets) assert_equal("\"asdf\"", r.gets.chomp) end + + run_pty("$VERBOSE, $/ = nil, '.'; p IO.console.getpass('> ')") do |r, w| + assert_equal("> ", r.readpartial(10)) + sleep 0.1 + w.print "asdf\n" + sleep 0.1 + assert_equal("\r\n", r.gets) + assert_equal("\"asdf\"", r.gets.chomp) + end end def test_iflush