diff --git a/ext/io/console/console.c b/ext/io/console/console.c index 1fb1609b4d..e034079f90 100644 --- a/ext/io/console/console.c +++ b/ext/io/console/console.c @@ -1562,7 +1562,7 @@ static VALUE str_chomp(VALUE str) { if (!NIL_P(str)) { - str = rb_funcallv(str, rb_intern("chomp!"), 0, 0); + rb_funcallv(str, rb_intern("chomp!"), 0, 0); } return str; } diff --git a/test/io/console/test_io_console.rb b/test/io/console/test_io_console.rb index 3962de3790..bec10c5da0 100644 --- a/test/io/console/test_io_console.rb +++ b/test/io/console/test_io_console.rb @@ -235,6 +235,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("p IO.console.getpass('> ')") do |r, w| + assert_equal("> ", r.readpartial(10)) + sleep 0.1 + w.print "asdf\C-D\C-D" + sleep 0.1 + assert_equal("\r\n", r.gets) + assert_equal("\"asdf\"", r.gets.chomp) + end end def test_iflush