lib/rtui/tty.rb



module RTUI
  module TTY
    class << self
        def get_width
      # FIXME: I don't know how portable it is. Works Linux/OSX.
      begin
        tiocgwinsz = 0x5413
        data = [0, 0, 0, 0].pack("SSSS")
        if @out.ioctl(tiocgwinsz, data) >= 0 then
          rows, cols, xpixels, ypixels = data.unpack("SSSS")
          if cols >= 0 then cols else default_width end
        else
          default_width
        end
      rescue Exception
        default_width
      end
    end

    def default_width
      stty = `stty size`
      if stty =~ /^\d+ \d+/
        stty.split[1].to_i
      else
        80
      end
    end

    end
  end
end