docs: 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