    # File temp/source.rb, line 167
        def scan(pattern, cons=false)
          rv = super
          # You'll notice that this next section is very similar to the same
          # section in match(), but just a liiittle different.  This is
          # because it is a touch faster to do it this way with scan()
          # than the way match() does it; enough faster to warrent duplicating
          # some code
          if rv.size == 0
            until @buffer =~ pattern or @source.nil?
              begin
                # READLINE OPT
                #str = @source.read(@block_size)
                str = @source.readline(@line_break)
                str = decode(str) if @to_utf and str
                @buffer << str
              rescue Iconv::IllegalSequence
                raise
              rescue
                @source = nil
              end
            end
            rv = super
          end
          rv.taint
          rv
        end