summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2021-01-05 13:52:18 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2021-01-05 21:26:11 +0900
commitead8d89bd7fa11601c7d6678a2b9182b01263077 (patch)
treeda598c41db89ab16c4ede670a75bcf6b7cdfda59
parent06454a9457e3c6fd819eb1ad6a9aa5b32eb083b1 (diff)
[ruby/io-console] Ignore chomp! result and return the modified string
https://github.com/ruby/io-console/commit/09e5ccc729
-rw-r--r--ext/io/console/console.c2
-rw-r--r--test/io/console/test_io_console.rb9
2 files changed, 10 insertions, 1 deletions
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