@@ -89,10 +89,20 @@ intoBuffer: (char*)buf { @throw [OFNotImplementedException newWithClass: isa selector: _cmd]; } + +- (void)readExactlyNBytes: (size_t)size + intoBuffer: (char*)buf +{ + size_t len = 0; + + while (len < size) + len += [self readNBytes: size - len + intoBuffer: buf + len]; +} - (OFDataArray*)readDataArrayTillEndOfStream { OFDataArray *a; char *buf;