From 4a79c898cf96cb80a333f91cbe41da99cd3aa6de Mon Sep 17 00:00:00 2001 From: Lee Salzman Date: Fri, 4 Dec 2009 17:07:35 +0000 Subject: [PATCH] end of file read fixes git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@4738 e016b1c5-ed68-44aa-a2f7-31cac88cffde --- source/src/zip.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/source/src/zip.cpp b/source/src/zip.cpp index 9d3eac25..b60d8a00 100644 --- a/source/src/zip.cpp +++ b/source/src/zip.cpp @@ -464,7 +464,7 @@ struct zipstream : stream while(pos > 0) { int skipped = min(pos, (long)sizeof(skip)); - if(read(skip, skipped) != skipped) { stopreading(); return false; } + if(read(skip, skipped) != skipped) return false; pos -= skipped; } @@ -485,7 +485,6 @@ struct zipstream : stream int n = (int)fread(buf, 1, min(len, int(info->size + info->offset - reading)), arch->data); reading += n; - if(n < len) stopreading(); return n; } @@ -497,10 +496,13 @@ struct zipstream : stream int err = inflate(&zfile, Z_NO_FLUSH); if(err != Z_OK) { + if(err != Z_STREAM_END) + { #ifndef STANDALONE - if(err != Z_STREAM_END && dbgzip) conoutf("inflate error: %s", err); + if(dbgzip) conoutf("inflate error: %s", err); #endif - stopreading(); + stopreading(); + } break; } }