From a636cf8b25d72900892b18191e0d68de10779e90 Mon Sep 17 00:00:00 2001 From: default Date: Wed, 28 Sep 2022 09:29:09 +0200 Subject: New function static_get(). --- xs_io.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'xs_io.h') diff --git a/xs_io.h b/xs_io.h index 523d207..62af82c 100644 --- a/xs_io.h +++ b/xs_io.h @@ -6,7 +6,7 @@ d_char *xs_readall(FILE *f); d_char *xs_readline(FILE *f); -d_char *xs_read(FILE *f, int size); +d_char *xs_read(FILE *f, int *size); #ifdef XS_IMPLEMENTATION @@ -56,16 +56,18 @@ d_char *xs_readline(FILE *f) } -d_char *xs_read(FILE *f, int size) +d_char *xs_read(FILE *f, int *sz) /* reads up to size bytes from f */ { d_char *s; + int size = *sz; + int rdsz = 0; errno = 0; s = xs_str_new(NULL); - while (size != 0 && !feof(f)) { + while (size > 0 && !feof(f)) { char tmp[2048]; int n, r; @@ -76,8 +78,11 @@ d_char *xs_read(FILE *f, int size) s = xs_append_m(s, tmp, r); size -= r; + rdsz += r; } + *sz = rdsz; + return s; } -- cgit v1.2.3