+ ## FIXME: with the useBytes argument to readChar, it is normal for
+ ## the buffer returned to be fewer character than bytes were read,
+ ## given the possibility of multibyte characters. However, that
+ ## means we can’t detect at all the case where there is actually a
+ ## short read (though empirically the readChar call blocks rather
+ ## than returning early).
+ ##
+ ## if(nchar(buffer) != len) {
+ ## stop("short read in readChunk")
+ ## }