diff options
author | Jeremy Evans <code@jeremyevans.net> | 2021-07-23 13:43:28 -0700 |
---|---|---|
committer | aycabta <aycabta@gmail.com> | 2021-07-30 02:27:02 +0900 |
commit | 44a9337a46ec1a965803999211c4c2b964b9c2f9 (patch) | |
tree | 1cd32c2fac2cc4ce7946cda718927190b0c2d58f /lib | |
parent | 1bf768d2e1f56457d5e2b35d90719553bf1f9601 (diff) | |
download | ruby-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.rb | 7 |
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) |