# File cli/ruby-debug/helper.rb, line 9
    def columnize(list, displaywidth=80)
      if not list.is_a?(Array)
        return "Expecting an Array, got #{list.class}\n"
      end
      if list.size == 0
        return  "<empty>\n"
      end
      nonstrings = []
      for str in list do
        nonstrings << str unless str.is_a?(String)
      end
      if nonstrings.size > 0
        return "Nonstrings: %s\n" % nonstrings.map {|non| non.to_s}.join(', ')
      end
      if 1 == list.size
        return "#{list[0]}\n"
      end
      # Try every row count from 1 upwards
      nrows = ncols = 0
      colwidths = []
      1.upto(list.size) do 
        colwidths = []
        nrows += 1
        ncols = (list.size + nrows-1) / nrows
        totwidth = -2
        # Debugger.debugger if nrows > 1
        0.upto(ncols-1) do |col|
          colwidth = 0
          0.upto(nrows-1) do |row|
            i = row + nrows*col
            if i >= list.size
              break
            end
            colwidth = [colwidth, list[i].size].max
          end
          colwidths << colwidth
          totwidth += colwidth + 2
          if totwidth > displaywidth
            break
          end
        end
        if totwidth <= displaywidth
          break
        end
      end
      s = ''
      0.upto(nrows-1) do |row| 
        texts = []
        0.upto(ncols-1) do |col|
          i = row + nrows*col
          if i >= list.size
            x = ""
          else
            x = list[i]
          end
          texts << x
        end
        while texts and texts[-1] == ''
          texts = texts[0..-2]
        end
        0.upto(texts.size-1) do |col|
          texts[col] = texts[col].ljust(colwidths[col])
        end
        s += "%s\n" % texts.join("  ")
      end
      return s
    end