Logan Capaldo wrote: > What ^C is actually depends on your terminal. If ^C is SIGINT for the > terminal, you'll never get ^C in the input stream no matter what you do. Not true - if you handle the SIGINT, there's no reason why you shouldn't get a character in the input stream. Here's an irb session on Windows: >> trap(:INT) {} => #<Proc:0x02855d78@C:/Documents and Settings/dburt/Program Files/ruby/lib/ruby /1.8/irb.rb:65> >> require "Win32API" => true >> def read_char >> Win32API.new("crtdll", "_getch", [], "L").Call >> end => nil >> read_char # and press enter => 13 >> read_char # and press Ctrl+A => 1 >> read_char # and press Ctrl+C => 3 Cheers, Dave