Add two flags: ZIP_ZF_CRC and ZIP_ZF_DECOMP to note
if we want to check the CRC of a file and if a file
should get decompressed. Adapt code. Removes some XXX.
From dillo.

--HG--
branch : HEAD
diff --git a/lib/zip_fread.c b/lib/zip_fread.c
index 11ad594..96f32c5 100644
--- a/lib/zip_fread.c
+++ b/lib/zip_fread.c
@@ -1,5 +1,5 @@
 /*
-  $NiH: zip_fread.c,v 1.12 2004/11/17 21:55:11 wiz Exp $
+  $NiH: zip_fread.c,v 1.13 2004/11/18 17:11:21 wiz Exp $
 
   zip_fread.c -- read from file
   Copyright (C) 1999, 2004 Dieter Baron and Thomas Klausner
@@ -56,8 +56,7 @@
 
     if (zf->bytes_left == 0) {
 	zf->flags |= ZIP_ZF_EOF;
-	if ((zf->flags & ZIP_ZF_COMP) == 0) {
-	    /* XXX: compare for stored */
+	if (zf->flags & ZIP_ZF_CRC) {
 	    if (zf->crc != zf->crc_orig) {
 		_zip_error_set(&zf->error, ZIP_ER_CRC, 0);
 		return -1;
@@ -66,13 +65,11 @@
 	return 0;
     }
     
-    if (zf->flags & ZIP_ZF_COMP) {
+    if ((zf->flags & ZIP_ZF_DECOMP) == 0) {
 	ret = _zip_file_fillbuf(outbuf, toread, zf);
 	if (ret > 0) {
-#if 0
-	    /* XXX: compute for stored */
-	    zf->crc = crc32(zf->crc, outbuf, ret);
-#endif
+	    if (zf->flags & ZIP_ZF_CRC)
+		zf->crc = crc32(zf->crc, outbuf, ret);
 	    zf->bytes_left -= ret;
 	}
 	return ret;
@@ -94,7 +91,8 @@
 	       have a header */
 	    len = zf->zstr->total_out - out_before;
 	    if (len >= zf->bytes_left || len >= toread) {
-		zf->crc = crc32(zf->crc, outbuf, len);
+		if (zf->flags & ZIP_ZF_CRC)
+		    zf->crc = crc32(zf->crc, outbuf, len);
 		zf->bytes_left -= len;
 	        return len;
 	    }