summaryrefslogtreecommitdiff
path: root/lib/irb/context.rb
diff options
context:
space:
mode:
authorStan Lo <[email protected]>2024-05-02 18:47:35 +0100
committerPeter Zhu <[email protected]>2024-05-02 14:33:30 -0400
commit945a99e81a2b4910a106e932c620abac75717cb1 (patch)
tree43fef3392e34aaffa7142aa31deaddd7115ac6d3 /lib/irb/context.rb
parentc59abb99995cbc9a69ef2753f8692a843ff11fdd (diff)
Sync IRB 241e061
Diffstat (limited to 'lib/irb/context.rb')
-rw-r--r--lib/irb/context.rb9
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