diff --git a/kaleid/libbuf/bgetc.c b/kaleid/libbuf/bgetc.c index 6577c06..be4b276 100644 --- a/kaleid/libbuf/bgetc.c +++ b/kaleid/libbuf/bgetc.c @@ -31,7 +31,7 @@ error_t BGetFromBuf(Buffer_t *buf, uchar *ch) assert(buf && buf->initDone == INITOK); if (!buf) return EINVAL; - if (buf->state != BS_RDWR && buf->state != BS_RDONLY) { + if (buf->flags & BUF_TERM || buf->state != BS_RDWR && buf->state != BS_RDONLY) { return EBADF; } @@ -47,6 +47,12 @@ error_t bgetc(Buffer_t *buf, uchar *ch) if (buf->flags & (BF_EOF|BF_ERR)) return EENDF; - return EOK; + if ( + + if (rc != EOK) { + // buf->flags |= BF_ERR; + } + + return rc; }