/*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;
}
}