]> granicus.if.org Git - zziplib/blob - test/zzipsetstub.c
msvc8
[zziplib] / test / zzipsetstub.c
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 static const char usage[] =
5 {
6     "zzipsetstub <zipfile> <zipsfxstub>... \n"
7     " overwrite the header of the zipfile with the sfxstub code.\n"
8     " this is usually the last step in creating a selfextract archive\n"
9     " or an application with all its data appended as a zip.\n"
10 };
11
12 int 
13 main (int argc, char ** argv)
14 {
15     int argn;
16     if (argc <= 2)
17     {
18         printf (usage);
19         exit (0);
20     }
21
22     {
23         char buf[17]; int n;
24         char* zipfile = 0; FILE* zipFILE = 0;
25         char* sfxfile = 0; FILE* sfxFILE = 0;
26     
27         for (argn=1; argn < argc; argn++)
28         {
29             if (argv[argn][0] == '-') continue;
30             if (! zipfile) { zipfile = argv[argn]; continue; }
31             if (! sfxfile) { sfxfile = argv[argn]; continue; }
32             /* superflous argument */
33         }
34
35         zipFILE = fopen (zipfile, "r+b");
36         if (! zipFILE) { perror (zipfile); return 1; }
37
38         sfxFILE = fopen (sfxfile, "rb");
39         if (! sfxFILE) { perror (sfxfile); return 1; }
40     
41         while (0 < (n = fread(buf, 1, 16, sfxFILE)))
42         {
43             buf[n] = '\0';
44             fwrite (buf, 1, n, zipFILE);
45         }
46         
47         if (n == -1) 
48             perror (argv[argn]);
49
50         fclose (sfxFILE);
51         fclose (zipFILE);
52     }
53     
54     return 0;
55
56
57 /* 
58  * Local variables:
59  * c-file-style: "stroustrup"
60  * End:
61  */