Merge pull request #8 from ccawley2011/includes
[debian-nspark.git] / testprog / pack.c
blob129724c522d3d02f19f6ff0a8c861bd83ac43eb0
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
5 #include "../spark.h"
6 #include "../crc.h"
7 #include "../nsparkio.h"
8 #include "../pack.h"
9 #include "../arcfs.h"
10 #include "../garble.h"
11 #include "../error.h"
13 char **files = NULL;
14 char *archive = NULL;
15 char *ourname = NULL;
17 unsigned char testing = 0;
18 unsigned char quiet = 0;
19 unsigned int singlecase = 0;
21 int
22 main(int argc, char *argv[])
24 FILE *in, *out;
25 Header header;
26 int r;
28 memset(&header, 0, sizeof(header));
30 set_password("james");
32 if (argc != 4)
34 fprintf(stderr, "usage: %s <-p|u> <infile> <outfile>\n", argv[0]);
35 exit(1);
38 in = fopen(argv[2], "r");
39 if (!in)
41 error("Failed to open %s for reading", argv[2]);
42 exit(1);
45 out = fopen(argv[3], "w");
46 if (!out)
48 error("Failed to open %s for writing", argv[3]);
51 if (strcmp(argv[1], "-p") == 0)
53 fseek(in, 0, SEEK_END);
54 header.origlen = ftell(in);
55 fseek(in, 0, SEEK_SET);
56 fwrite(&header, sizeof(header), 1, out);
57 crcsize = header.origlen;
58 pack(&header, in, out);
59 fseek(out, 0, SEEK_SET);
60 msg("\n");
61 fwrite(&header, sizeof(header), 1, out);
62 msg("Original size = %d\n", header.origlen);
63 msg("Compressed size = %d\n", header.complen);
65 else
67 if (fread(&header, sizeof(header), 1, in)!=sizeof(header)) {
68 perror("Read failed!");
69 exit(1);
71 msg("Original size = %d\n", header.origlen);
72 msg("Compressed size = %d\n", header.complen);
73 crcsize = writesize = header.origlen;
74 r = unpack(&header, in, out);
75 if (r != NOERR)
77 error("Failed %d", r);
79 msg("\n");
82 fclose(in);
83 fclose(out);
84 return 0;