aboutsummaryrefslogtreecommitdiffstats
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
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
-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)