/* splits_cat.c
 *
 * Copyright (c) W.H.Scholten 1996, 1997
 * (bbcim)
 */

int  split_cat(char *cat_naam, int flags) {
    FILE *fpcat, *fpinfo;
    char infofile[100];
    char read_line[100], bbcfile_naam[15];
    char nieuwe_naam[100];
    int i, args;

    int antwoord;
int verbose;
    unsigned long load, exec, crc;

verbose=flags & VERBOSE;

    if (file_sanitycheck(cat_naam, verbose)) return -1;

    fpcat=fopen(cat_naam,"r");
    while (fscanf(fpcat,"%12s", bbcfile_naam)!=EOF) {
	bbcfile_naam[9]=0;
	fgets(read_line, 99, fpcat); /* GET REMAINDER OF LINE */
	if (bbcfile_naam[1]=='.') {
	    replace_bad_chars(bbcfile_naam);

	    if (!(flags & BBC_DIR))
		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]%lx %lx %*[^=]=%x", &load, &exec, (uint *) &crc);
	    fprintf(fpinfo, "  %6lX  %6lX", load, exec);
	    if (read_line[i]=='L') fprintf(fpinfo, " Locked");
	    if (args==3) fprintf(fpinfo, "  CRC=%4X", (uint) crc);
	    fclose(fpinfo);
	}
    
    }
    fclose(fpcat);
    return 0;
}