/* pe_pullup.c - "pullup" a presentation element */
static char *rcsid
= "$Header: /f/osi/psap/RCS/pe_pullup.c,v 7.1 91/02/22 09:36:16 mrose Interim $";
* $Header: /f/osi/psap/RCS/pe_pullup.c,v 7.1 91/02/22 09:36:16 mrose Interim $
* Revision 7.1 91/02/22 09:36:16 mrose
* Revision 7.0 89/11/23 22:13:06 mrose
* 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
PElementData
pe_pullup_aux ();
register PElementData dp
;
if (pe
-> pe_form
!= PE_FORM_CONS
)
if ((dp
= pe_pullup_aux (pe
, &len
)) == NULLPED
)
for (p
= pe
-> pe_cons
; p
; p
= p
-> pe_next
)
pe
-> pe_form
= PE_FORM_PRIM
;
static PElementData
pe_pullup_aux (pe
, len
)
register PElementClass
class;
register PElementData dp
,
if ((dp
= PEDalloc (i
= pe
-> pe_len
)) == NULLPED
)
PEDcpy (pe
-> pe_prim
, dp
, i
);
class = pe
-> pe_class
, id
= pe
-> pe_id
;
for (p
= pe
-> pe_cons
; p
; p
= p
-> pe_next
) {
if (p
-> pe_class
!= class
|| (ep
= pe_pullup_aux (p
, &j
)) == NULLPED
) {
if ((fp
= PEDrealloc (dp
, k
= i
+ j
)) == NULLPED
) {