diff options
| author | Klaatu <[email protected]> | 2015-05-17 15:33:21 +1200 |
|---|---|---|
| committer | Klaatu <[email protected]> | 2015-05-17 15:33:21 +1200 |
| commit | b0de699679e8f1e39af847ed172d1ba605b4370c (patch) | |
| tree | 01dac00471d61f727394e508c613b29cff0ceae5 /djb/buffer_get.c | |
bulk upload of source
Diffstat (limited to 'djb/buffer_get.c')
| -rw-r--r-- | djb/buffer_get.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/djb/buffer_get.c b/djb/buffer_get.c new file mode 100644 index 0000000..ed51707 --- /dev/null +++ b/djb/buffer_get.c @@ -0,0 +1,17 @@ +#include "buffer.h" +#include <errno.h> + +int buffer_getc(buffer* b, char *s) /*EXTRACT_INCL*/ { + if (b->p >= b->n) { + int r; + while ((r=b->op(b->fd, b->x, b->a)) <0) + if (errno != EINTR) break; + + if (r<=0) return r; + b->p = 0; + b->n = r; + } + *s = b->x[b->p]; + b->p++; + return 1; +} |
