Index: fusl/src/stdio/__string_read.c |
diff --git a/fusl/src/stdio/__string_read.c b/fusl/src/stdio/__string_read.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7b50a7e1154224a40ddcbb204a429eb74380ffc9 |
--- /dev/null |
+++ b/fusl/src/stdio/__string_read.c |
@@ -0,0 +1,16 @@ |
+#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; |
+} |