This is outstack.c in view mode; [Download] [Up]
/* This file is for managing the output stack of group elements */ #include "discgrpP.h" static int BlockSize, array_size; static DiscGrpEl *mystack = NULL, *stackptr = NULL; static int count = 0, debug = 0; int init_out_stack() { array_size = 1; BlockSize = 1024; count = 0; if ((mystack = OOGLNewN (DiscGrpEl, BlockSize )) == (DiscGrpEl *) NULL) return(0); stackptr = mystack; return(1); } int enumpush(pp) DiscGrpEl *pp; { register int i; if (stackptr >= &mystack[BlockSize*array_size]) { if (debug) fprintf(stderr,"allocating again: size is now %d\n",array_size*BlockSize); array_size = array_size*2; if ((mystack = OOGLRenewN(DiscGrpEl,mystack, array_size*BlockSize)) == (DiscGrpEl *) NULL) return (0); stackptr = &mystack[count]; } *stackptr = *pp; TmCopy(pp->tform, stackptr->tform); stackptr++; count++; return(1); } int enumgetsize() { return(count); } DiscGrpEl * enumgetstack() { DiscGrpEl *thisptr; thisptr = OOGLNewN (DiscGrpEl, count ); if (thisptr == NULL) return ( (DiscGrpEl *) NULL); bcopy(mystack, thisptr, sizeof(DiscGrpEl) * count); OOGLFree(mystack); return(thisptr); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.