    # File temp/source.rb, line 138
        def initialize(arg, block_size=500, encoding=nil)
          @er_source = @source = arg
          @to_utf = false

          # Determining the encoding is a deceptively difficult issue to resolve.
          # First, we check the first two bytes for UTF-16.  Then we
          # assume that the encoding is at least ASCII enough for the '>', and
          # we read until we get one of those.  This gives us the XML declaration,
          # if there is one.  If there isn't one, the file MUST be UTF-8, as per
          # the XML spec.  If there is one, we can determine the encoding from
          # it.
          @buffer = ""
          str = @source.read( 2 ) || ''
          if encoding
            self.encoding = encoding
          elsif str[0,2] == "\xfe\xff"
            @line_break = "\000>"
          elsif str[0,2] == "\xff\xfe"
            @line_break = ">\000"
          elsif str[0,2] == "\xef\xbb"
            str += @source.read(1)
            str = '' if (str[2,1] == "\xBF")
            @line_break = ">"
          else
            @line_break = ">"
          end
          super( @source.eof? ? str : str+@source.readline( @line_break ) )
        end