Skip to content

Commit 5fcd89a

Browse files
committed
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.
1 parent cb95b46 commit 5fcd89a

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

lib/reline/terminfo.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,9 @@ module Reline::Terminfo
9292
end
9393

9494
def self.setupterm(term, fildes)
95-
errret_int = String.new("\x00" * 8, encoding: 'ASCII-8BIT')
95+
errret_int = Fiddle::Pointer.malloc(Fiddle::SIZEOF_INT)
9696
ret = @setupterm.(term, fildes, errret_int)
97-
errret = errret_int.unpack1('i')
97+
errret = errret_int[0, Fiddle::SIZEOF_INT].unpack1('i')
9898
case ret
9999
when 0 # OK
100100
0

0 commit comments

Comments
 (0)