/*Copyright (C) 1992, 1994 by Thomas Glen Smith. All Rights Reserved.*/ /* savfscb APL2 V1.0.0 ************************************************* * Called from savfsub to save an apl variable. * ***********************************************************************/ #define INCLUDES APLCB+IO+STDIO+STRING #include "includes.h" void savfscb(fp,rite) int fp; /* file descriptor handle */ Aplcb rite; /* apl variable to save */ { Savfscb; int i,j,k; int *ip; char *cp; i = write(fp,&(rite->aplflags), sizeof(rite->aplflags)); i = write(fp,&(rite->aplcount), sizeof(rite->aplcount)); i = write(fp,&(rite->aplrank), sizeof(rite->aplrank)); i = write(fp,&(rite->aplsize), sizeof(rite->aplsize)); ip = rite->apldim; /* save dimensions */ for ( j = rite->aplrank ; j > 0 ; j-- ) i = write(fp, ip++, sizeof(int)); cp = rite->aplptr.aplchar; /* save data */ for ( j = rite->aplcount ; j > 0 ; j-- ) { if (rite->aplflags & APLAPL) savfscb(fp,*((Aplcb*) cp)); else i = write(fp, cp, rite->aplsize); cp += rite->aplsize; } }