/* splits_cat.c Copyright (c) W.H.Scholten 1996 Deel van bbcim */ void split_cat(int argc, char *argv[],int options, char *optread_line) { FILE *fpcat, *fpinfo; char infofile[100]; char read_line[100], bbcfile_naam[15]; char cat_naam[100], nieuwe_naam[100]; int i, args; int no_bbc_dir=0; int antwoord; unsigned long load, exec, crc; if ((argc-options)<2) { #ifdef NL printf("Naam van de te splitsen catalogus?"); #else printf("Name of the catalogue to be split?"); #endif scanf("%50s", cat_naam); } else strcpy(cat_naam, argv[1+options]); if (optread_line[2]=='#') no_bbc_dir=1; fpcat=fopen(cat_naam,"r"); while (fscanf(fpcat,"%12s", bbcfile_naam)!=EOF) { bbcfile_naam[9]=0; #if DEBUG printf("bbcfile=%s", bbcfile_naam); #endif fgets(read_line, 99, fpcat); /* GET REMAINDER OF LINE */ if (bbcfile_naam[1]=='.') { if (no_bbc_dir) /* {if (bbcfile_naam[0]=='$') strcpy(infofile,bbcfile_naam+2); else {infofile[0]=bbcfile_naam[0]; strcpy(infofile+1,bbcfile_naam+2); } } */ reduceer_unix_naam(infofile, bbcfile_naam); else strcpy(infofile,bbcfile_naam); strcat(infofile,".inf"); /* Check if file exists (can be opened) */ if ((fpinfo=fopen(infofile, "r"))!=NULL) { fclose(fpinfo); antwoord=overschrijf_vraag(bbcfile_naam, infofile); switch(antwoord) { case OVERSCHRIJVEN: break; case HERNOEM_NIEUW: strcpy(infofile, nieuwe_naam); break; case HERNOEM_BESTAAND: rename(infofile, nieuwe_naam); break; case SLA_OVER: continue; /*next in while loop*/ } /* switch */ } /* END NAME CHECK */ fpinfo=fopen(infofile, "w"); fprintf(fpinfo, bbcfile_naam); for (i=0; i<99; i++) { if (read_line[i]>' ') break; } args =sscanf(read_line,"%*[ L\x09]%x %x %*[^=]=%x", (int *) &load, (int *) &exec, (int *) &crc); fprintf(fpinfo, " %6X %6X", (int) load, (int) exec); if (read_line[i]=='L') fprintf(fpinfo, " Locked"); if (args==3) fprintf(fpinfo, " CRC=%4X", (int) crc); fclose(fpinfo); } } /* NETJES AFSLUITEN */ fclose(fpcat); }