Actions
Feature #13604
openExposing alternative interface of readline
Description
GNU Readline has multiple modes of operation. At the moment, the readline extension only supports typical, Readline.readline
mode. However, there is also alternative callback-based interface which is also useful.
require_relative 'readline'
PROMPT = "rltest$ "
$running = true
$sigwinch_received = false
Readline.handler_install(PROMPT, add_hist: true) do |line|
# Can use ^D (stty eof) or `exit' to exit.
if !line || line == "exit"
puts unless line
puts "exit"
Readline.handler_remove
$running = false
else
puts "input line: #{line}"
end
end
Signal.trap('SIGWINCH') { $sigwinch_received = true }
while $running do
rs = IO.select([$stdin])
if $sigwinch_received
Readline.resize_terminal
$sigwinch_received = false
end
Readline.read_char if r = rs[0]
end
puts "rltest: Event loop has exited"
Patch adding support for this is attached. This is my first try at contributing to ruby, so please tell me what I did wrong (I'm sure something, C is not my strong language).
Files
Actions
Like0
Like0Like0Like0Like0Like0Like0