write filenames as len+string, instead of zero terminated string
[swftools.git] / installer / mkarchive.c
index 45b2a3d..7dc3fe8 100644 (file)
@@ -1,23 +1,3 @@
-/* mkarchive.c
-
-   Part of the rfx installer (Main program).
-   
-   Copyright (c) 2004-2008 Matthias Kramm <kramm@quiss.org> 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
-
 #include <stdlib.h>
 #include <stdio.h>
 #include <unistd.h>
@@ -34,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
@@ -160,7 +109,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;
@@ -280,42 +228,9 @@ int main (int argn, char*argv[])
 {
     int t;
     char buf[320];
-    int num = 0;
-
-    int fullsize = 0;
-    for(t=1;t<argn;t++)
-    {
-       if(argv[t][0]!='-')
-       {
-           FILE*fi=fopen(argv[t],"rb");
-           if(fi) {
-               fseek(fi,0,SEEK_END);
-               long l=ftell(fi);
-               fclose(fi);
-               fullsize += l;
-               num++;
-           }
-       }
-    }
-
 
-#ifdef ZLIB
     writer_t*include_writer = writer_init_includewriter("crnfiles.c");
     writer_t*zwriter = writer_init_zwriter(include_writer);
-#else //LZMA
-    unlink("crnfiles.dat");
-    unlink("crnfiles.7z");
-    unlink("crnfiles.c");
-    writer_t*zwriter = writer_init_filewriter("crnfiles.dat");
-#endif
-    unsigned char n1=num;
-    unsigned char n2=num>>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);
 
@@ -341,7 +256,6 @@ int main (int argn, char*argv[])
                            else if(strstr(argv[t],".jpeg")) id="PIC";
                            else if(strstr(argv[t],".jpg")) id="PIC";
                            else if(strstr(argv[t],".tif")) id="PIC";
-                           else if(strstr(argv[t],".ico")) id="PIC";
                            else if(strstr(argv[t],".c")) id="SRC";
                            else if(strstr(argv[t],".cc")) id="SRC";
                            else if(strstr(argv[t],".cpp")) id="SRC";
@@ -355,7 +269,6 @@ int main (int argn, char*argv[])
                            else if(strstr(argv[t],".afm")) id="FON";
                            else if(strstr(argv[t],".1")) id="DOC";
                            else if(strstr(argv[t],".doc")) id="DOC";
-                           else if(strstr(argv[t],".txt")) id="TXT";
                            else if(strstr(argv[t],".hlp")) id="DOC";
                            else if(strstr(argv[t],".dll")) id="DLL";
 
@@ -390,41 +303,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;
 }