# File lib/linecache.rb, line 298
  def getlines(filename, opts=false)
    if opts.kind_of?(Hash)
      reload_on_change, use_script_lines =
        [opts[:reload_on_change], opts[:use_script_lines]]
    else
      reload_on_change, use_script_lines = [opts, false]
      opts = {:reload_on_change => reload_on_change}
    end
    checkcache(filename) if reload_on_change
    format = opts[:output] || :plain
    if @@file_cache.member?(filename)
      lines = @@file_cache[filename].lines
      if opts[:output] && !lines[format]
        lines[format] =
          highlight_string(lines[:plain].join(''), format).split(/\n/)
      end
      return lines[format]
    else
      opts[:use_script_lines] = true
      update_cache(filename, opts)
      if @@file_cache.member?(filename)
        return @@file_cache[filename].lines[format]
      else
        return nil
      end
    end
  end