|
|
@ -3,7 +3,9 @@ |
|
|
size_t __string_read(FILE *f, unsigned char *buf, size_t len) |
|
|
size_t __string_read(FILE *f, unsigned char *buf, size_t len) |
|
|
{ |
|
|
{ |
|
|
char *src = f->cookie; |
|
|
char *src = f->cookie; |
|
|
size_t k = strnlen(src, len+256); |
|
|
size_t k = len+256; |
|
|
|
|
|
char *end = memchr(src, 0, k); |
|
|
|
|
|
if (end) k = end-src; |
|
|
if (k < len) len = k; |
|
|
if (k < len) len = k; |
|
|
memcpy(buf, src, len); |
|
|
memcpy(buf, src, len); |
|
|
f->rpos = (void *)(src+len); |
|
|
f->rpos = (void *)(src+len); |
|
|
|