From 12e09f9f85ac48ff891adf92f3b2c9a5fea27273 Mon Sep 17 00:00:00 2001 From: Nicholas Noll Date: Sat, 4 Dec 2021 14:10:21 -0800 Subject: Chore(REMOVE): finished deprecation of old io functions. The old methods were simple wrappers of C standard library functions. We've moved (painfully) over to a new interface that allows for files to live on the stack. All users of the functionality are ported over. --- src/base/io/getr.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/base/io/getr.c (limited to 'src/base/io/getr.c') diff --git a/src/base/io/getr.c b/src/base/io/getr.c new file mode 100644 index 0000000..01b0f45 --- /dev/null +++ b/src/base/io/getr.c @@ -0,0 +1,29 @@ +#include "internal.h" + +rune +io·getr(io·Header *io) +{ + int c, i; + rune r; + char buf[UTFmax]; + + c = io·getc(io); + if(utf8·onebyte(c)){ + io->runesz = 1; + return c; + } + buf[0] = c; + + for(i=1;;){ + if((c = io·getc(io))<0) + return c; + + buf[i++] = c; + if(utf8·fullrune(buf, i)){ + io->runesz = utf8·decode(buf, &r); + while(i-- > io->runesz) + io·ungetc(io); + return r; + } + } +} -- cgit v1.2.1