# File lib/facets/more/bbcode.rb, line 158
  def BBCode.bbcode_to_ansi(string, usecolors = true)
      return "" if string.nil? || string.to_s.strip.empty?
      result = ""

      return BBCode.strip_bbcode(string) if !usecolors

      ## Iterate over lines
      string.split("\n").each do |line|

          ## TODO: stacking? other styles!
          ANSINAME2BBCODE.each do |key,val|
              line.gsub!(/\[#{val}\]/, ANSINAME2CODE[key])
              line.gsub!(/\[\/#{val}\]/, ANSINAME2CODE["reset"])
          end

          ## Fonttypes and sizes not available
          line.gsub!(/\[SIZE=\d\]/, "")
          line.gsub!(/\[\/SIZE\]/, "")
          line.gsub!(/\[FONT=[^\]]*\]/, "")
          line.gsub!(/\[\/FONT\]/, "")

          ## Color-mapping
          colors = line.scan(/\[COLOR=(.*?)\]/i)
          colors = colors.collect{|s|  s[0].to_s} if !colors.nil?
          colors.each do |col|  
              name = BBCOLOR2ANSI[col.downcase]
              name = BBCOLOR2ANSI["white"] if name.nil?
              code = ANSINAME2CODE[name]

              line.gsub!(/\[COLOR=#{col}\]/i, code)
          end
          line.gsub!(/\[\/COLOR\]/, ANSINAME2CODE["reset"])

          ## TODO: Alignment
          ## TODO: IMGs
          ## TODO: EMAILs
          ## TODO: URLs
          ## TODO: QUOTEs
          ## TODO: LISTs

          result << sprintf("%s\n", line)
      end

      return result
  end