diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/irb.rb | 15 | ||||
-rw-r--r-- | lib/irb/cmd/force_exit.rb (renamed from lib/irb/cmd/exit_forced_action.rb) | 4 | ||||
-rw-r--r-- | lib/irb/extend-command.rb | 2 |
3 files changed, 6 insertions, 15 deletions
diff --git a/lib/irb.rb b/lib/irb.rb index ad6ec78aa4..3830867e6a 100644 --- a/lib/irb.rb +++ b/lib/irb.rb @@ -889,10 +889,6 @@ module IRB throw :IRB_EXIT, false end - def IRB.irb_exit!(*) - throw :IRB_EXIT, true - end - # Aborts then interrupts irb. # # Will raise an Abort exception, or the given +exception+. @@ -972,8 +968,7 @@ module IRB conf[:IRB_RC].call(context) if conf[:IRB_RC] conf[:MAIN_CONTEXT] = context - supports_history_saving = conf[:SAVE_HISTORY] && context.io.support_history_saving? - save_history = !in_nested_session && supports_history_saving + save_history = !in_nested_session && conf[:SAVE_HISTORY] && context.io.support_history_saving? if save_history context.io.load_history @@ -993,12 +988,8 @@ module IRB trap("SIGINT", prev_trap) conf[:AT_EXIT].each{|hook| hook.call} - if forced_exit - context.io.save_history if supports_history_saving - Kernel.exit(0) - else - context.io.save_history if save_history - end + context.io.save_history if save_history + Kernel.exit(0) if forced_exit end end diff --git a/lib/irb/cmd/exit_forced_action.rb b/lib/irb/cmd/force_exit.rb index e5df75b682..2b9f296865 100644 --- a/lib/irb/cmd/exit_forced_action.rb +++ b/lib/irb/cmd/force_exit.rb @@ -6,12 +6,12 @@ module IRB # :stopdoc: module ExtendCommand - class ExitForcedAction < Nop + class ForceExit < Nop category "IRB" description "Exit the current process." def execute(*) - IRB.irb_exit! + throw :IRB_EXIT, true rescue UncaughtThrowError Kernel.exit(0) end diff --git a/lib/irb/extend-command.rb b/lib/irb/extend-command.rb index 2db2b80578..d303bf76da 100644 --- a/lib/irb/extend-command.rb +++ b/lib/irb/extend-command.rb @@ -37,7 +37,7 @@ module IRB # :nodoc: [:irb_quit, OVERRIDE_PRIVATE_ONLY], ], [ - :irb_exit!, :ExitForcedAction, "cmd/exit_forced_action", + :irb_exit!, :ForceExit, "cmd/force_exit", [:exit!, OVERRIDE_PRIVATE_ONLY], ], |