def OLDnext_match str
      _calculate_column_offsets unless @coffsets
      first = nil
      ## content can be string or Chunkline, so we had to write <tt>index</tt> for this.
      @list.each_with_index do |fields, ix|
        #col = line.index str
        #fields.each_with_index do |f, jx|
        #@chash.each_with_index do |c, jx|
          #next if c.hidden
        each_column do |c,jx|
          f = fields[c.index]
          # value can be numeric
          col = f.to_s.index str
          if col
            col += @coffsets[jx]
            first ||= [ ix, col ]
            if ix > @current_index
              return [ix, col]
            end
          end
        end
      end
      return first
    end
def OLDnext_match str
      _calculate_column_offsets unless @coffsets
      first = nil
      ## content can be string or Chunkline, so we had to write <tt>index</tt> for this.
      @list.each_with_index do |fields, ix|
        #col = line.index str
        #fields.each_with_index do |f, jx|
        #@chash.each_with_index do |c, jx|
          #next if c.hidden
        each_column do |c,jx|
          f = fields[c.index]
          # value can be numeric
          col = f.to_s.index str
          if col
            col += @coffsets[jx]
            first ||= [ ix, col ]
            if ix > @current_index
              return [ix, col]
            end
          end
        end
      end
      return first
    end
Find the next row that contains given string
 Overrides textpad since each line is an array
 NOTE does not go to next match within row
 NOTE: FIXME ensure_visible puts prow = current_index so in this case, the header
   overwrites the matched row.
 @return row and col offset of match, or nil
 @param String to find
@ deprecate since it does not get second match in line. textpad does
 however, the offset textpad shows is wrong