    # File temp/source.rb, line 156
                    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