X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/mLib/blobdiff_plain/97f65b001294338abed02a7b132d6be6517b3f1d..83af686b3f8fa028e75e3bd6c3babef4c143ddbe:/lbuf.c diff --git a/lbuf.c b/lbuf.c index b81136f..118250d 100644 --- a/lbuf.c +++ b/lbuf.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: lbuf.c,v 1.1 1999/05/14 21:01:14 mdw Exp $ + * $Id: lbuf.c,v 1.3 1999/05/22 13:38:50 mdw Exp $ * * Block-to-line buffering * @@ -30,6 +30,12 @@ /*----- Revision history --------------------------------------------------* * * $Log: lbuf.c,v $ + * Revision 1.3 1999/05/22 13:38:50 mdw + * Fix bug which discarded initial portions of incomplete lines. + * + * Revision 1.2 1999/05/17 20:36:08 mdw + * Make the magical constants for the buffer flags uppercase. + * * Revision 1.1 1999/05/14 21:01:14 mdw * Integrated `select' handling bits from the background resolver project. * @@ -82,7 +88,7 @@ void lbuf_flush(lbuf *b, char *p, size_t len) cr = 0; len = b->len; } else - cr = b->f & lbuf_cr; + cr = b->f & LBUF_CR; l = p + len; @@ -132,7 +138,7 @@ void lbuf_flush(lbuf *b, char *p, size_t len) else *q = 0; b->func(base, b->p); - if (!(b->f & lbuf_enable)) { + if (!(b->f & LBUF_ENABLE)) { base = q + 1; break; } @@ -152,9 +158,9 @@ void lbuf_flush(lbuf *b, char *p, size_t len) memmove(b->buf, base, len); b->len = len; if (cr) - b->f |= lbuf_cr; + b->f |= LBUF_CR; else - b->f &= ~lbuf_cr; + b->f &= ~LBUF_CR; } } @@ -176,7 +182,7 @@ void lbuf_close(lbuf *b) b->buf[b->len] = 0; b->func(b->buf, b->p); } - if (b->f & lbuf_enable) + if (b->f & LBUF_ENABLE) b->func(0, b->p); } @@ -204,7 +210,7 @@ size_t lbuf_free(lbuf *b, char **p) * reason this routine exists. */ - if (b->len == 0 || b->len == sizeof(b->buf)) { + if (b->len != 0 && b->len != sizeof(b->buf)) { *p = b->buf + b->len; return (sizeof(b->buf) - b->len); } else { @@ -263,7 +269,7 @@ void lbuf_init(lbuf *b, b->func = func; b->p = p; b->len = 0; - b->f = lbuf_enable; + b->f = LBUF_ENABLE; } /*----- That's all, folks -------------------------------------------------*/