'Read and decode the next chunk of data from the BufferedReader.'

def _read_chunk(self):

    if (self._decoder is None):
        raise ValueError(u'no    decoder')
    if self._telling:
        (dec_buffer, dec_flags) = self._decoder.getstate()
    input_chunk = self.buffer.read1(self._CHUNK_SIZE)
    eof = (not input_chunk)
    self._set_decoded_chars(self._decoder.decode(input_chunk, eof))
    if self._telling:
        self._snapshot = (dec_flags, (dec_buffer + input_chunk))
    return (not eof)
