summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2021-07-06 19:06:49 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2021-07-06 21:02:40 +0900
commitafd4cfcf22a4ec6e2dbd5f774169ce771d22acea (patch)
tree20d171e23bddc285e7db8fad1fe71d743a2cb963
parent9accb92ba1db93ccb30785e4a637f345569afb4e (diff)
Try "so" attribute if "smso" is not found
-rw-r--r--tool/lib/colorize.rb2
-rw-r--r--tool/m4/_colorize_result_prepare.m41
2 files changed, 2 insertions, 1 deletions
diff --git a/tool/lib/colorize.rb b/tool/lib/colorize.rb
index 6699aef572..11b878d318 100644
--- a/tool/lib/colorize.rb
+++ b/tool/lib/colorize.rb
@@ -8,7 +8,7 @@ class Colorize
@colors = @reset = nil
@color = (opts[:color] if opts)
if color or (color == nil && STDOUT.tty?)
- if (/\A\e\[.*m\z/ =~ IO.popen("tput smso", "r", :err => IO::NULL, &:read) rescue nil)
+ if (%w[smso so].any? {|attr| /\A\e\[.*m\z/ =~ IO.popen("tput #{attr}", "r", :err => IO::NULL, &:read)} rescue nil)
@beg = "\e["
colors = (colors = ENV['TEST_COLORS']) ? Hash[colors.scan(/(\w+)=([^:\n]*)/)] : {}
if opts and colors_file = opts[:colors_file]
diff --git a/tool/m4/_colorize_result_prepare.m4 b/tool/m4/_colorize_result_prepare.m4
index c8478bd0b6..8439acf3ed 100644
--- a/tool/m4/_colorize_result_prepare.m4
+++ b/tool/m4/_colorize_result_prepare.m4
@@ -9,6 +9,7 @@ AC_DEFUN([_COLORIZE_RESULT_PREPARE], [
[configure_tty=0])])
AS_IF([test $configure_tty -eq 1], [
msg_begin="`tput smso 2>/dev/null`"
+ AS_IF([test -z "$msg_begin"], [msg_begin="`tput so 2>/dev/null`"])
AS_CASE(["$msg_begin"], ['@<:@'*m],
[msg_begin="`echo "$msg_begin" | sed ['s/[0-9]*m$//']`"
msg_checking="${msg_begin}33m"