aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2021-07-23 13:43:28 -0700
committeraycabta <aycabta@gmail.com>2021-07-30 02:27:02 +0900
commit44a9337a46ec1a965803999211c4c2b964b9c2f9 (patch)
tree1cd32c2fac2cc4ce7946cda718927190b0c2d58f /lib
parent1bf768d2e1f56457d5e2b35d90719553bf1f9601 (diff)
downloadruby-44a9337a46ec1a965803999211c4c2b964b9c2f9.tar.gz
[ruby/reline] 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. https://github.com/ruby/reline/commit/0ce2b34e2b
Diffstat (limited to 'lib')
-rw-r--r--lib/reline/terminfo.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/reline/terminfo.rb b/lib/reline/terminfo.rb
index 0c531e6501..72592688a8 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)