--- ./zipinfo.c.gege Sat Jan 13 22:42:38 2001 +++ ./zipinfo.c Tue Mar 19 13:54:52 2002 @@ -172,7 +172,7 @@ static ZCONST char Far CentralDirEntry[] = "\nCentral directory entry #%lu:\n---------------------------\n\n"; static ZCONST char Far ZipfileStats[] = - "%lu file%s, %lu bytes uncompressed, %lu bytes compressed: %s%d.%d%%\n"; + "%lu file%s, %llu bytes uncompressed, %llu bytes compressed: %s%d.%d%%\n"; /* zi_long() strings */ static ZCONST char Far OS_FAT[] = "MS-DOS, OS/2 or NT FAT"; @@ -699,7 +699,7 @@ int do_this_file=FALSE, error, error_in_archive=PK_COOL; int *fn_matched=NULL, *xn_matched=NULL; ulg j, members=0L; - ulg tot_csize=0L, tot_ucsize=0L; + ulg64 tot_csize=0L, tot_ucsize=0L; ulg endprev; /* buffers end of previous entry for zi_long()'s check * of extra bytes */ --- ./unzip.h.gege Fri Apr 21 01:21:14 2000 +++ ./unzip.h Tue Mar 19 13:55:10 2002 @@ -322,7 +322,8 @@ typedef unsigned char uch; /* code assumes unsigned bytes; these type- */ typedef unsigned short ush; /* defs replace byte/UWORD/ULONG (which are */ typedef unsigned long ulg; /* predefined on some systems) & match zip */ +typedef unsigned long long ulg64; /* predefined on some systems) & match zip */ #define _IZ_TYPES_DEFINED #endif /* !_IZ_TYPES_DEFINED */ --- ./list.c.gege Sat Jan 13 22:39:48 2001 +++ ./list.c Tue Mar 19 17:03:27 2002 @@ -633,23 +633,16 @@ /********************/ int ratio(uc, c) - ulg uc, c; + ulg64 uc, c; { - ulg denom; + ulg64 denom; if (uc == 0) return 0; - if (uc > 2000000L) { /* risk signed overflow if multiply numerator */ - denom = uc / 1000L; - return ((uc >= c) ? - (int) ((uc-c + (denom>>1)) / denom) : - -((int) ((c-uc + (denom>>1)) / denom))); - } else { /* ^^^^^^^^ rounding */ - denom = uc; - return ((uc >= c) ? + denom = uc; + return ((uc >= c) ? (int) ((1000L*(uc-c) + (denom>>1)) / denom) : -((int) ((1000L*(c-uc) + (denom>>1)) / denom))); - } /* ^^^^^^^^ rounding */ } --- ./unzpriv.h.gege Wed Jan 10 23:53:56 2001 +++ ./unzpriv.h Tue Mar 19 17:05:08 2002 @@ -1669,7 +1669,7 @@ int get_time_stamp OF((__GPRO__ time_t *last_modtime, ulg *nmember)); #endif -int ratio OF((ulg uc, ulg c)); +int ratio OF((ulg64 uc, ulg64 c)); void fnprint OF((__GPRO)); #endif /* !SFX */