| #include "stdio_impl.h" | |
| #include <string.h> | |
| size_t __string_read(FILE *f, unsigned char *buf, size_t len) | |
| { | |
| char *src = f->cookie; | |
| size_t k = len+256; | |
| char *end = memchr(src, 0, k); | |
| if (end) k = end-src; | |
| if (k < len) len = k; | |
| memcpy(buf, src, len); | |
| f->rpos = (void *)(src+len); | |
| f->rend = (void *)(src+k); | |
| f->cookie = src+k; | |
| return len; | |
| } |