|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T q
Length: 1414 (0x586) Types: TextFile Names: »qb_pullup.c«
└─⟦3d0c2be1b⟧ Bits:30001254 ISODE-5.0 Tape └─⟦eba4602b1⟧ »./isode-5.0.tar.Z« └─⟦d3ac74d73⟧ └─⟦this⟧ »isode-5.0/psap/qb_pullup.c«
/* qb_pullup.c - "pullup" a list of qbufs */ #ifndef lint static char *rcsid = "$Header: /f/osi/psap/RCS/qb_pullup.c,v 6.0 89/03/18 23:39:12 mrose Rel $"; #endif /* * $Header: /f/osi/psap/RCS/qb_pullup.c,v 6.0 89/03/18 23:39:12 mrose Rel $ * * * $Log: qb_pullup.c,v $ * Revision 6.0 89/03/18 23:39:12 mrose * Release 5.0 * */ /* * NOTICE * * Acquisition, use, and distribution of this module and related * materials are subject to the restrictions of a license agreement. * Consult the Preface in the User's Manual for the full terms of * this agreement. * */ /* LINTLIBRARY */ #include <stdio.h> #include "psap.h" /* \f */ int qb_pullup (qb) register struct qbuf *qb; { register int len; register char *d; register struct qbuf *p, *qp, *qpp; len = 0; #ifdef notdef /* want null-termination... */ if ((p = qb -> qb_forw) -> qb_forw == qb) return OK; #endif for (p = qb -> qb_forw; p != qb; p = p -> qb_forw) len += p -> qb_len; if ((p = (struct qbuf *) malloc ((unsigned) (sizeof *p + len + 1))) == NULL) return NOTOK; d = p -> qb_data = p -> qb_base; p -> qb_len = len; for (qp = qb -> qb_forw; qp != qb; qp = qpp) { qpp = qp -> qb_forw; remque (qp); bcopy (qp -> qb_data, d, qp -> qb_len); d += qp -> qb_len; free ((char *) qp); } *d = NULL; insque (p, qb); return OK; }