module Reline::Terminfo

Public Class Methods

curses_dl() click to toggle source
# File lib/reline/terminfo.rb, line 6
def self.curses_dl
  false
end
curses_dl_files() click to toggle source
# File lib/reline/terminfo.rb, line 17
def self.curses_dl_files
  case RUBY_PLATFORM
  when /mingw/, /mswin/
    # aren't supported
    []
  when /cygwin/
    %w[cygncursesw-10.dll cygncurses-10.dll]
  when /darwin/
    %w[libncursesw.dylib libcursesw.dylib libncurses.dylib libcurses.dylib]
  else
    %w[libncursesw.so libcursesw.so libncurses.so libcurses.so]
  end
end
enabled?() click to toggle source
# File lib/reline/terminfo.rb, line 165
def self.enabled?
  true
end
setupterm(term, fildes) click to toggle source
# File lib/reline/terminfo.rb, line 94
def self.setupterm(term, fildes)
  errret_int = Fiddle::Pointer.malloc(Fiddle::SIZEOF_INT)
  ret = @setupterm.(term, fildes, errret_int)
  errret = errret_int[0, Fiddle::SIZEOF_INT].unpack1('i')
  case ret
  when 0 # OK
    0
  when -1 # ERR
    case errret
    when 1
      raise TerminfoError.new('The terminal is hardcopy, cannot be used for curses applications.')
    when 0
      raise TerminfoError.new('The terminal could not be found, or that it is a generic type, having too little information for curses applications to run.')
    when -1
      raise TerminfoError.new('The terminfo database could not be found.')
    else # unknown
      -1
    end
  else # unknown
    -2
  end
end
tigetflag(capname) click to toggle source
# File lib/reline/terminfo.rb, line 141
def self.tigetflag(capname)
  raise TerminfoError, "capname is not String: #{capname.inspect}" unless capname.is_a?(String)
  flag = @tigetflag.(capname).to_i
  case flag
  when -1
    raise TerminfoError, "not boolean capability: #{capname}"
  when 0
    raise TerminfoError, "can't find capability: #{capname}"
  end
  flag
end
tigetnum(capname) click to toggle source
# File lib/reline/terminfo.rb, line 153
def self.tigetnum(capname)
  raise TerminfoError, "capname is not String: #{capname.inspect}" unless capname.is_a?(String)
  num = @tigetnum.(capname).to_i
  case num
  when -2
    raise TerminfoError, "not numeric capability: #{capname}"
  when -1
    raise TerminfoError, "can't find capability: #{capname}"
  end
  num
end
tigetstr(capname) click to toggle source
# File lib/reline/terminfo.rb, line 123
def self.tigetstr(capname)
  raise TerminfoError, "capname is not String: #{capname.inspect}" unless capname.is_a?(String)
  capability = @tigetstr.(capname)
  case capability.to_i
  when 0, -1
    raise TerminfoError, "can't find capability: #{capname}"
  end
  StringWithTiparm.new(capability.to_s)
end
tiparm(str, *args) click to toggle source
# File lib/reline/terminfo.rb, line 133
def self.tiparm(str, *args)
  new_args = []
  args.each do |a|
    new_args << Fiddle::TYPE_INT << a
  end
  @tiparm.(str, *new_args).to_s
end