diff options
author | Peter Zhu <[email protected]> | 2022-01-07 22:34:54 -0500 |
---|---|---|
committer | git <[email protected]> | 2022-01-08 20:32:06 +0900 |
commit | 09cfc653b77584d557a551df6a5b8ebddbbd11a2 (patch) | |
tree | 5ca0587eb56aa52f93552081872bdd309a867016 | |
parent | 0ca00e2cb74f9d07d27844d97c29c208caab95a7 (diff) |
[ruby/reline] Fix reline on Solaris
Solaris requires that the pointer errret_int is alined to an integer,
however, with VWA, strings are no longer aligned to an integer, so use a
Fiddle::Pointer with a malloc'd region instead.
https://github.com/ruby/reline/commit/5fcd89ab0c
-rw-r--r-- | lib/reline/terminfo.rb | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/reline/terminfo.rb b/lib/reline/terminfo.rb index b053ba82c4..fd8a312d78 100644 --- a/lib/reline/terminfo.rb +++ b/lib/reline/terminfo.rb @@ -92,9 +92,9 @@ module Reline::Terminfo end def self.setupterm(term, fildes) - errret_int = String.new("\x00" * 8, encoding: 'ASCII-8BIT') + errret_int = Fiddle::Pointer.malloc(Fiddle::SIZEOF_INT) ret = @setupterm.(term, fildes, errret_int) - errret = errret_int.unpack1('i') + errret = errret_int[0, Fiddle::SIZEOF_INT].unpack1('i') case ret when 0 # OK 0 |