summaryrefslogtreecommitdiff
path: root/lib/reline
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2022-01-07 22:34:54 -0500
committergit <svn-admin@ruby-lang.org>2022-01-08 20:32:06 +0900
commit09cfc653b77584d557a551df6a5b8ebddbbd11a2 (patch)
tree5ca0587eb56aa52f93552081872bdd309a867016 /lib/reline
parent0ca00e2cb74f9d07d27844d97c29c208caab95a7 (diff)
downloadruby-09cfc653b77584d557a551df6a5b8ebddbbd11a2.tar.gz
[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
Diffstat (limited to 'lib/reline')
-rw-r--r--lib/reline/terminfo.rb4
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