X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=installer%2Fmkarchive.c;h=c9c0d4919d2bb532d72bdfea16a4114e8c0dad40;hb=28908a4b6137c76a8fc481f830933f9088d007d1;hp=5762143abc59987ca7af7be863b31ba7e6816737;hpb=74d5cefc88452a77288b0b1c67939259b9f03000;p=swftools.git diff --git a/installer/mkarchive.c b/installer/mkarchive.c index 5762143..c9c0d49 100644 --- a/installer/mkarchive.c +++ b/installer/mkarchive.c @@ -14,37 +14,6 @@ typedef struct _writer void *internal; } writer_t; -/* ---------------------------- file writer ------------------------------- */ - -typedef struct -{ - FILE*fi; -} filewrite_t; -static int writer_filewrite_write(writer_t*w, void* data, int len) -{ - filewrite_t * fw= (filewrite_t*)w->internal; - return fwrite(data, len, 1, fw->fi); -} -static void writer_filewrite_finish(writer_t*w) -{ - filewrite_t *mr = (filewrite_t*)w->internal; - fclose(mr->fi); - free(w->internal); - memset(w, 0, sizeof(writer_t)); -} -writer_t*writer_init_filewriter(char*filename) -{ - writer_t*w = malloc(sizeof(writer_t)); - FILE*fi = fopen(filename, "wb"); - filewrite_t *mr = (filewrite_t *)malloc(sizeof(filewrite_t)); - mr->fi = fi; - memset(w, 0, sizeof(writer_t)); - w->write = writer_filewrite_write; - w->finish = writer_filewrite_finish; - w->internal = mr; - return w; -} - /* ---------------------------- include file filter ------------------------------- */ typedef struct _ifwrite @@ -89,7 +58,6 @@ static void writer_ifwrite_finish(writer_t*w) ifwrite_t *i= (ifwrite_t*)w->internal; fprintf(i->fi, "\"%s\"\n", i->buf); fprintf(i->fi, ";\n"); - fprintf(i->fi, "int crndata_len = %d;\n", i->pos); fclose(i->fi); printf("wrote file %s\n", i->filename); free(w->internal);w->internal = 0; @@ -140,7 +108,6 @@ static int writer_zlibdeflate_write(writer_t*writer, void* data, int len) { struct zlibdeflate_t*z = (struct zlibdeflate_t*)writer->internal; int ret; - if(!z) { fprintf(stderr, "zlib not initialized!\n"); return 0; @@ -260,42 +227,9 @@ int main (int argn, char*argv[]) { int t; char buf[320]; - int num = 0; - int fullsize = 0; - for(t=1;t>8; - unsigned char n3=num>>16; - unsigned char n4=num>>24; - zwriter->write(zwriter,&n1,1); - zwriter->write(zwriter,&n2,1); - zwriter->write(zwriter,&n3,1); - zwriter->write(zwriter,&n4,1); qsort(argv+1, argn-1, sizeof(argv[0]), compare_filenames); @@ -339,21 +273,9 @@ int main (int argn, char*argv[]) fread(buf,l,1,fi); zwriter->write(zwriter,id,3); - unsigned char b1=l; - unsigned char b2=l>>8; - unsigned char b3=l>>16; - unsigned char b4=l>>24; - zwriter->write(zwriter,&b1,1); - zwriter->write(zwriter,&b2,1); - zwriter->write(zwriter,&b3,1); - zwriter->write(zwriter,&b4,1); + zwriter->write(zwriter,&l,4); int sl=strlen(argv[t]); - if(sl>255) { - fprintf(stderr, "Error: filename %s too long\n", argv[t]); - } - unsigned char b = sl; - zwriter->write(zwriter,&b,1); //write filename len - zwriter->write(zwriter,argv[t],sl); //write filename + zwriter->write(zwriter,argv[t],sl+1); //write filename zwriter->write(zwriter,buf,l); //write data fprintf(stderr,"[%s] %s: %d bytes written.\n", id, argv[t], l); fclose(fi); @@ -365,44 +287,6 @@ int main (int argn, char*argv[]) } } } - char*id_end = "END"; - zwriter->write(zwriter,id_end,3); zwriter->finish(zwriter); - -#ifndef ZLIB - if(system("do_lzma e crnfiles.dat crnfiles.7z")&0xff00) { - perror("do_lzma"); - exit(1); - } - FILE*fi = fopen("crnfiles.7z", "rb"); - if(!fi) { - perror("crnfiles.7z"); - exit(1); - } - writer_t*w = writer_init_includewriter("crnfiles.c"); - while(!feof(fi)) { - char buf[4096]; - int len = fread(buf,1,4096,fi); - if(!len) - break; - w->write(w, buf, len); - } - w->finish(w); - fclose(fi); - if(unlink("crnfiles.dat")) { - perror("crnfiles.dat"); - exit(1); - } - if(unlink("crnfiles.7z")) { - perror("crnfiles.7z"); - exit(1); - } -#endif - - fi = fopen("crnfiles.c", "ab+"); - fprintf(fi, "\nint crn_decompressed_size=%d;\n", fullsize); - fclose(fi); - - return 0; }