Fix setvbuf

This commit is contained in:
K. Lange 2018-07-01 09:30:16 +09:00
parent 0d3af97b08
commit 38e380fc49
1 changed files with 2 additions and 1 deletions

View File

@ -83,6 +83,7 @@ int setvbuf(FILE * stream, char * buf, int mode, size_t size) {
if (stream->read_buf) { if (stream->read_buf) {
free(stream->read_buf); free(stream->read_buf);
} }
stream->read_buf = buf;
stream->bufsiz = size; stream->bufsiz = size;
} }
return 0; return 0;
@ -127,7 +128,7 @@ static size_t read_bytes(FILE * f, char * out, size_t len) {
} }
//fprintf(stderr, "%s: reading until %d reaches %d or %d reaches 0\n", _argv_0, f->read_from, f->offset, len); //fprintf(stderr, "%s: reading until %d reaches %d or %d reaches 0\n", _argv_0, f->read_from, f->offset, len);
while (f->read_from < f->offset && len > 0) { while (f->read_from < f->offset && len > 0 && f->available > 0) {
*out = f->read_buf[f->read_from]; *out = f->read_buf[f->read_from];
len--; len--;
f->read_from++; f->read_from++;