Read data from the file in self.bufsize chunks until we're
           certain we have a full line in the buffer.

def read_next_into_buf(self):
        """Read data from the file in self.bufsize chunks until we're
           certain we have a full line in the buffer.
        """
        file_pos = self.fileobject.tell()
        if (file_pos == 0) and (self.buf == b''):
            raise StopIteration
        while file_pos and (self.get_start_of_line() == 0):
            bytes_to_read = min(self.bufsize, file_pos)
            file_pos = file_pos - bytes_to_read
            self.fileobject.seek(file_pos)
            new_stuff = self.fileobject.read(bytes_to_read)[:bytes_to_read]
            self.fileobject.seek(file_pos)
            self.buf = new_stuff + self.buf