#include #include #include "zlib.h" #include "zutil.h" int main(int argc, char *argv[]) { char *compr; char uncompr[99999]; FILE* fp; int err; uLong uncomprLen, comprLen; /* We want status messages */ z_verbose = 1; fp = fopen("graphic.wmf.lzzed", "r"); assert(fp); /* Figure out the size of the file in a boring way*/ assert(fseek(fp, 0, SEEK_END) == 0); comprLen = ftell(fp); assert(fseek(fp, 0, SEEK_SET) == 0); /* Read in the file contents */ assert(compr = malloc(comprLen)); assert(fread(compr, comprLen, 1, fp)); fclose(fp); uncomprLen = sizeof(uncompr); /* This was the trick :( */ err = uncompress(uncompr, &uncomprLen, compr, comprLen); if (err != Z_OK) { fprintf(stderr, "error: %d\n", err); exit(1); } /* Write out uncompressed data */ assert(fp = fopen("t.t", "w")); assert(fwrite(uncompr, uncomprLen, 1, fp)); fclose(fp); return 0; }