diff options
Diffstat (limited to 'sys/base/bufio/get.c')
-rw-r--r-- | sys/base/bufio/get.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/sys/base/bufio/get.c b/sys/base/bufio/get.c new file mode 100644 index 0000000..9f10c88 --- /dev/null +++ b/sys/base/bufio/get.c @@ -0,0 +1,17 @@ +#include "internal.h" +#include "refill.h" + +int +bufio·getbyte(io·Buffer *buf) +{ +getbyte: + if(buf->pos < buf->end) + return *buf->pos++; + + memmove(buf->buf, buf->end - bufio·ungets, bufio·ungets); + + if(refill(buf) <= 0) + return bufio·eof; + + goto getbyte; +} |