summaryrefslogtreecommitdiffstats
path: root/abs/core/unzip/unzip542-size-64bit.patch
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/unzip/unzip542-size-64bit.patch')
-rw-r--r--abs/core/unzip/unzip542-size-64bit.patch72
1 files changed, 72 insertions, 0 deletions
diff --git a/abs/core/unzip/unzip542-size-64bit.patch b/abs/core/unzip/unzip542-size-64bit.patch
new file mode 100644
index 0000000..0142a36
--- /dev/null
+++ b/abs/core/unzip/unzip542-size-64bit.patch
@@ -0,0 +1,72 @@
+--- ./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 */