ruby-changes:67060
From: Nobuyoshi <ko1@a...>
Date: Fri, 6 Aug 2021 14:18:53 +0900 (JST)
Subject: [ruby-changes:67060] 3e7fb4b91d (master): Check the result of tigetstr
https://git.ruby-lang.org/ruby.git/commit/?id=3e7fb4b91d From 3e7fb4b91d263f291c21200f3d11998053cdcf79 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada <nobu@r...> Date: Fri, 6 Aug 2021 13:34:25 +0900 Subject: Check the result of tigetstr --- lib/reline/terminfo.rb | 7 ++++++- test/reline/test_terminfo.rb | 8 ++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/reline/terminfo.rb b/lib/reline/terminfo.rb index a2dae44..d78f3d7 100644 --- a/lib/reline/terminfo.rb +++ b/lib/reline/terminfo.rb @@ -98,7 +98,12 @@ module Reline::Terminfo https://github.com/ruby/ruby/blob/trunk/lib/reline/terminfo.rb#L98 end def self.tigetstr(capname) - StringWithTiparm.new(@tigetstr.(capname).to_s) + capability = @tigetstr.(capname) + case capability.to_i + when 0, -1 + raise TerminfoError, "can't find capability: #{capname}" + end + StringWithTiparm.new(capability.to_s) end def self.tiparm(str, *args) diff --git a/test/reline/test_terminfo.rb b/test/reline/test_terminfo.rb index dcb64c2..1e98fae 100644 --- a/test/reline/test_terminfo.rb +++ b/test/reline/test_terminfo.rb @@ -10,17 +10,25 @@ class Reline::Terminfo::Test < Reline::TestCase https://github.com/ruby/ruby/blob/trunk/test/reline/test_terminfo.rb#L10 def test_tigetstr assert Reline::Terminfo.tigetstr('khome') + rescue Reline::Terminfo::TerminfoError => e + skip e.message end def test_tiparm assert Reline::Terminfo.tigetstr('khome').tiparm + rescue Reline::Terminfo::TerminfoError => e + skip e.message end def test_tigetstr_with_param assert Reline::Terminfo.tigetstr('cuu').include?('%p1%d') + rescue Reline::Terminfo::TerminfoError => e + skip e.message end def test_tiparm_with_param assert Reline::Terminfo.tigetstr('cuu').tiparm(4649).include?('4649') + rescue Reline::Terminfo::TerminfoError => e + skip e.message end end if Reline::Terminfo.enabled? -- cgit v1.1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/