module DEBUGGER__::TrapInterceptor

def trap sig, *command, &command_proc

def trap sig, *command, &command_proc
  sym =
    case sig
    when String
      sig.to_sym
    when Integer
      Signal.signame(sig)&.to_sym
    else
      sig
    end
  case sig&.to_s&.to_sym
  when :INT, :SIGINT
    if defined?(SESSION) && SESSION.active? && SESSION.intercept_trap_sigint?
      return SESSION.save_int_trap(command.empty? ? command_proc : command.first)
    end
  end
  super
end