# File lib/termtter/system_extensions.rb, line 107
  def print(str)
    str.to_s.gsub("\xef\xbd\x9e", "\xe3\x80\x9c").split(/(\e\[\d*[a-zA-Z])/).each do |token|
      case token
      when /\e\[(\d+)m/
        color = $1.to_i > 90 ? ($1.to_i % 60) : $1.to_i
        $wSetConsoleTextAttribute.call $hStdOut, $colorMap[color].to_i
      when /\e\[\d*[a-zA-Z]/
        # do nothing
      else
        loop do
          begin
            STDOUT.print $iconv_u8_to_sj.iconv(token)
            break
          rescue Iconv::Failure
            STDOUT.print "#{$!.success}?"
            token = $!.failed[1..-1]
          end
        end
      end
    end
    $wSetConsoleTextAttribute.call $hStdOut, $oldColor
    $iconv_u8_to_sj.iconv(nil)
  end