diff options
author | Stan Lo <[email protected]> | 2024-05-02 18:47:35 +0100 |
---|---|---|
committer | Peter Zhu <[email protected]> | 2024-05-02 14:33:30 -0400 |
commit | 945a99e81a2b4910a106e932c620abac75717cb1 (patch) | |
tree | 43fef3392e34aaffa7142aa31deaddd7115ac6d3 /lib/irb/context.rb | |
parent | c59abb99995cbc9a69ef2753f8692a843ff11fdd (diff) |
Sync IRB 241e061
Diffstat (limited to 'lib/irb/context.rb')
-rw-r--r-- | lib/irb/context.rb | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/irb/context.rb b/lib/irb/context.rb index 22e855f1ef..173f3dae5d 100644 --- a/lib/irb/context.rb +++ b/lib/irb/context.rb @@ -85,7 +85,7 @@ module IRB @io = nil case use_multiline? when nil - if STDIN.tty? && IRB.conf[:PROMPT_MODE] != :INF_RUBY && !use_singleline? + if term_interactive? && IRB.conf[:PROMPT_MODE] != :INF_RUBY && !use_singleline? # Both of multiline mode and singleline mode aren't specified. @io = RelineInputMethod.new(build_completor) else @@ -99,7 +99,7 @@ module IRB unless @io case use_singleline? when nil - if (defined?(ReadlineInputMethod) && STDIN.tty? && + if (defined?(ReadlineInputMethod) && term_interactive? && IRB.conf[:PROMPT_MODE] != :INF_RUBY) @io = ReadlineInputMethod.new else @@ -151,6 +151,11 @@ module IRB @command_aliases = @user_aliases.merge(KEYWORD_ALIASES) end + private def term_interactive? + return true if ENV['TEST_IRB_FORCE_INTERACTIVE'] + STDIN.tty? && ENV['TERM'] != 'dumb' + end + # because all input will eventually be evaluated as Ruby code, # command names that conflict with Ruby keywords need special workaround # we can remove them once we implemented a better command system for IRB |