def draw_line_from_array ln, a, opts
xpos = 0
a.each_with_index do |(color, text), i|
raise "nil text for color '#{color}'" if text.nil?
l = text.display_length
no_fill = i != a.size - 1
if xpos + l < @leftcol
buffer.write ln - @topline, 0, "", :color => color,
:highlight => opts[:highlight]
elsif xpos < @leftcol
buffer.write ln - @topline, 0, text[(@leftcol - xpos) .. -1],
:color => color,
:highlight => opts[:highlight], :no_fill => no_fill
else
buffer.write ln - @topline, xpos - @leftcol, text,
:color => color, :highlight => opts[:highlight],
:no_fill => no_fill
end
xpos += l
end
end