summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAbinoam P. Marques Jr <abinoam@gmail.com>2023-01-06 19:16:29 -0300
committerGitHub <noreply@github.com>2023-01-06 19:16:29 -0300
commit8e5f773e9e4180f30f850a6ec364a082b8bc8f3f (patch)
tree7a436aee021704aaacff5fb94cb304d0fe6f04ef /lib
parent7755f1f3f3b80e4c1c48446ea8234eaf954e6538 (diff)
parent75010bcf9047dec765429adaa5dbec1cfc66a0af (diff)
downloadhighline-8e5f773e9e4180f30f850a6ec364a082b8bc8f3f.tar.gz
Merge pull request #259 from abinoam/issue_236
Handle Ctrl-C when Question#echo = false (raw_no_echo_mode)
Diffstat (limited to 'lib')
-rw-r--r--lib/highline.rb1
-rw-r--r--lib/highline/io_console_compatible.rb2
-rw-r--r--lib/highline/terminal/io_console.rb2
3 files changed, 3 insertions, 2 deletions
diff --git a/lib/highline.rb b/lib/highline.rb
index 3e60cd3..47df4be 100644
--- a/lib/highline.rb
+++ b/lib/highline.rb
@@ -538,6 +538,7 @@ class HighLine
terminal.raw_no_echo_mode_exec do
loop do
character = terminal.get_character
+ raise Interrupt if character == "\u0003"
break unless character
break if ["\n", "\r"].include? character
diff --git a/lib/highline/io_console_compatible.rb b/lib/highline/io_console_compatible.rb
index 7ff06f5..7fa388c 100644
--- a/lib/highline/io_console_compatible.rb
+++ b/lib/highline/io_console_compatible.rb
@@ -13,7 +13,7 @@ require "tempfile"
#
module IOConsoleCompatible
- def getch
+ def getch(min:nil, time:nil, intr: nil)
getc
end
diff --git a/lib/highline/terminal/io_console.rb b/lib/highline/terminal/io_console.rb
index d28ee0d..9374f09 100644
--- a/lib/highline/terminal/io_console.rb
+++ b/lib/highline/terminal/io_console.rb
@@ -27,7 +27,7 @@ class HighLine
# (see Terminal#get_character)
def get_character
- input.getch # from ruby io/console
+ input.getch(intr: true) # from ruby io/console
rescue Errno::ENOTTY
input.getc
end