ruby-changes:70790
From: Peter <ko1@a...>
Date: Sat, 8 Jan 2022 20:32:18 +0900 (JST)
Subject: [ruby-changes:70790] 09cfc653b7 (master): [ruby/reline] Fix reline on Solaris
https://git.ruby-lang.org/ruby.git/commit/?id=09cfc653b7 From 09cfc653b77584d557a551df6a5b8ebddbbd11a2 Mon Sep 17 00:00:00 2001 From: Peter Zhu <peter@p...> Date: Fri, 7 Jan 2022 22:34:54 -0500 Subject: [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 --- lib/reline/terminfo.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/reline/terminfo.rb b/lib/reline/terminfo.rb index b053ba82c4c..fd8a312d785 100644 --- a/lib/reline/terminfo.rb +++ b/lib/reline/terminfo.rb @@ -92,9 +92,9 @@ module Reline::Terminfo https://github.com/ruby/ruby/blob/trunk/lib/reline/terminfo.rb#L92 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 -- cgit v1.2.1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/