# File lib/gist/manpage.rb, line 60 def page_stdout return unless $stdout.tty? read, write = IO.pipe if Kernel.fork # Parent process, become pager $stdin.reopen(read) read.close write.close # Don't page if the input is short enough ENV['LESS'] = 'FSRX' # Wait until we have input before we start the pager Kernel.select [STDIN] pager = ENV['PAGER'] || 'less -isr' pager = 'cat' if pager.empty? exec pager rescue exec "/bin/sh", "-c", pager else # Child process $stdout.reopen(write) $stderr.reopen(write) if $stderr.tty? read.close write.close end end