From 8daecd15d00d97061c69b0078f38e095c7bc7e33 Mon Sep 17 00:00:00 2001 From: ketmar Date: Mon, 26 Mar 2012 10:53:54 +0300 Subject: [PATCH] bugfix in unsqz --- src/unsqz.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/unsqz.c b/src/unsqz.c index 64ef642..25bf182 100644 --- a/src/unsqz.c +++ b/src/unsqz.c @@ -30,36 +30,37 @@ int main (int argc, char *argv[]) { fprintf(stderr, "usage: unsqz infile [outfile]\n"); return 1; } - if (argc == 2) { - outname = calloc(strlen(argv[1])+128, 1); - if (outname == NULL) abort(); - sprintf(outname, "%s.unp", argv[1]); - } + // fi = fopen(argv[1], "rb"); if (fi == NULL) { fprintf(stderr, "FATAL: can't open input file: '%s'\n", argv[1]); return 1; } - if (fread(sign, 4, 1, fi) != 4) { + // + if (fread(sign, 4, 1, fi) != 1) { fclose(fi); fprintf(stderr, "FATAL: can't read input file: '%s'\n", argv[1]); return 1; } fclose(fi); + // if (sign[0] == 0xb4 && sign[1] == 0x4c && sign[2] == 0xcd && sign[3] == 0x21) { fprintf(stderr, "FATAL: DIET compression found in file: '%s'\n", argv[1]); return 1; } - if (sign[1] == 0) { - printf("HUFF+RLE"); - } else if (sign[1] == 0x10) { - printf("LZW"); - } else { + // + if (sign[1] != 0 && sign[1] != 0x10) { fprintf(stderr, "FATAL: unknown compression method in file: '%s'\n", argv[1]); return 1; } // - printf("unpacking '%s' to '%s'...\n", argv[1], outname); + if (argc == 2) { + outname = calloc(strlen(argv[1])+128, 1); + if (outname == NULL) abort(); + sprintf(outname, "%s.unp", argv[1]); + } + // + printf("unpacking %s '%s' to '%s'...\n", sign[1]==0?"LZW":"HUFF+RLE", argv[1], outname); retval = unSQZ(argv[1], &test); //printf("retval = %x\n", retval); //if (test == NULL) printf("test = NULL\n"); -- 2.11.4.GIT