diff --git a/lib/reline/terminfo.rb b/lib/reline/terminfo.rb index d6751aade5..38dd6404bc 100644 --- a/lib/reline/terminfo.rb +++ b/lib/reline/terminfo.rb @@ -40,7 +40,12 @@ module Reline::Terminfo #extern 'char *tigetstr(char *capname)' @tigetstr = Fiddle::Function.new(curses_dl['tigetstr'], [Fiddle::TYPE_VOIDP], Fiddle::TYPE_VOIDP) #extern 'char *tiparm(const char *str, ...)' - @tiparm = Fiddle::Function.new(curses_dl['tiparm'], [Fiddle::TYPE_VOIDP, Fiddle::TYPE_VARIADIC], Fiddle::TYPE_VOIDP) + @tiparm = begin + Fiddle::Function.new(curses_dl['tiparm'], [Fiddle::TYPE_VOIDP, Fiddle::TYPE_VARIADIC], Fiddle::TYPE_VOIDP) + rescue + # OpenBSD lacks tiparm + Fiddle::Function.new(curses_dl['tparm'], [Fiddle::TYPE_VOIDP, Fiddle::TYPE_VARIADIC], Fiddle::TYPE_VOIDP) + end # TODO: add int tigetflag(char *capname) and int tigetnum(char *capname) def self.setupterm(term, fildes)