Skip to content

Commit 0ce2b34

Browse files
committed
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.
1 parent 7b1c750 commit 0ce2b34

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

lib/reline/terminfo.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,12 @@ module Reline::Terminfo
4040
#extern 'char *tigetstr(char *capname)'
4141
@tigetstr = Fiddle::Function.new(curses_dl['tigetstr'], [Fiddle::TYPE_VOIDP], Fiddle::TYPE_VOIDP)
4242
#extern 'char *tiparm(const char *str, ...)'
43-
@tiparm = Fiddle::Function.new(curses_dl['tiparm'], [Fiddle::TYPE_VOIDP, Fiddle::TYPE_VARIADIC], Fiddle::TYPE_VOIDP)
43+
@tiparm = begin
44+
Fiddle::Function.new(curses_dl['tiparm'], [Fiddle::TYPE_VOIDP, Fiddle::TYPE_VARIADIC], Fiddle::TYPE_VOIDP)
45+
rescue
46+
# OpenBSD lacks tiparm
47+
Fiddle::Function.new(curses_dl['tparm'], [Fiddle::TYPE_VOIDP, Fiddle::TYPE_VARIADIC], Fiddle::TYPE_VOIDP)
48+
end
4449
# TODO: add int tigetflag(char *capname) and int tigetnum(char *capname)
4550

4651
def self.setupterm(term, fildes)

0 commit comments

Comments
 (0)