/* blimp.c PEH, RAP, CJP Version 4 01/08/07 */ #include #include #include"blimp.h" int tmpgp[GRPSIZ]; int ReadGroup(int *g, FILE *f) { int i,len,j,*pt,ct; ct=0; pt=(int*)g; while(1) { fscanf(f,"%d",&i); if(i==0) return -1; ct++; if(ct>GRPSIZ) { printf("run out of group space\n"); exit(23); } *(pt++)=i; if(i==999) break; fscanf(f,"%d",&len); ct+=len+1; if(ct>GRPSIZ) { printf("run out of group space\n"); exit(23); } *(pt++)=len; for(i=0;iGRPSIZ) { printf("run out of blimp space\n"); exit(23); } len=b[1]; for(i=0;i<=len+1;i++) *(p3++)=*(p2++); while(*p1!=999) { *(p3++)=*(p1++); len=*p1; ct+=len+2; if(ct>GRPSIZ) { printf("run out of blimp space\n"); exit(23); } for(i=0;i<=len;i++) *(p3++)=*(p1++); } p1 = (int*)g; p3 = (int*)tmpgp; for(i=0;i