5d4 #include #include #include #include #include #include #include #include #include #define TRUE 1 #define FALSE 0 char vocfile[20]; char *tempbuf; main(int argc, char **argv) { FILE *vocf, *outf, *voclistf, *offsetf; char vfile[20]; unsigned int numread, i, first_voc = TRUE; unsigned long offset; if(argc > 2) { voclistf = fopen(argv[1], "rt"); outf = fopen(argv[2], "wb"); offsetf = fopen("voc_offs.c", "wt"); fprintf(offsetf, "unsigned long voc_offs[] = {"); tempbuf = malloc(50000); offset = 0L; while(fgets(vocfile,80,voclistf)) { vocfile[strlen(vocfile)-1] = 0; strcpy(vfile,vocfile); strcat(vfile,".VOC"); if(! (vocf=fopen(vfile, "rb"))) { printf("Couldn't find %s!\n", vfile); break; } numread = fread(tempbuf, 1, 50000, vocf); fclose(vocf); fwrite(tempbuf, 1, numread, outf); if(! first_voc) fprintf(offsetf, ",", offset); fprintf(offsetf, "\n\t%ldL", offset); first_voc = FALSE; offset += (unsigned long)numread; } fprintf(offsetf, "\n};"); fclose(voclistf); fclose(outf); fclose(offsetf); printf("Ok.\n"); } else { printf("VOC Masher v1.0\n"); printf("usage: vocmash \n\n"); printf("The VOC list file should contain the names of all the\n"); printf("VOC files to mash, one name per line\n"); } } . 0