    # File lib/rubygems/config_file.rb, line 75
      def initialize(arg_list)
        @config_file_name = nil
        need_config_file_name = false

        arg_list = arg_list.map do |arg|
          if need_config_file_name then
            @config_file_name = arg
            need_config_file_name = false
            nil
          elsif arg =~ /^--config-file=(.*)/ then
            @config_file_name = $1
            nil
          elsif arg =~ /^--config-file$/ then
            need_config_file_name = true
            nil
          else
            arg
          end
        end.compact

        @backtrace = DEFAULT_BACKTRACE
        @benchmark = DEFAULT_BENCHMARK
        @bulk_threshold = DEFAULT_BULK_THRESHOLD
        @verbose = DEFAULT_VERBOSITY
        @update_sources = DEFAULT_UPDATE_SOURCES

        @hash = load_file(SYSTEM_WIDE_CONFIG_FILE)
        @hash.merge!(load_file(config_file_name.dup.untaint))

        # HACK these override command-line args, which is bad
        @backtrace = @hash[:backtrace] if @hash.key? :backtrace
        @benchmark = @hash[:benchmark] if @hash.key? :benchmark
        @bulk_threshold = @hash[:bulk_threshold] if @hash.key? :bulk_threshold
        Gem.sources.replace @hash[:sources] if @hash.key? :sources
        @verbose = @hash[:verbose] if @hash.key? :verbose
        @update_sources = @hash[:update_sources] if @hash.key? :update_sources

        handle_arguments arg_list
      end