From 0ce2b34e2b568421b019d54a119283040b4be135 Mon Sep 17 00:00:00 2001 From: Jeremy Evans Date: Fri, 23 Jul 2021 13:43:28 -0700 Subject: [PATCH] Fix reline on OpenBSD OpenBSD doesn't support tiparm, only tparm. I'm not sure if the two are compatible, but this at least this allows me to run irb on OpenBSD. --- lib/reline/terminfo.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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)