/* -*-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
*
/*----- 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.
*
cr = 0;
len = b->len;
} else
- cr = b->f & lbuf_cr;
+ cr = b->f & LBUF_CR;
l = p + len;
else
*q = 0;
b->func(base, b->p);
- if (!(b->f & lbuf_enable)) {
+ if (!(b->f & LBUF_ENABLE)) {
base = q + 1;
break;
}
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;
}
}
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);
}
* 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 {
b->func = func;
b->p = p;
b->len = 0;
- b->f = lbuf_enable;
+ b->f = LBUF_ENABLE;
}
/*----- That's all, folks -------------------------------------------------*/