Lines Matching defs:zi

1005     zip64_internal* zi;
1044 zi = (zip64_internal*)ALLOC(sizeof(zip64_internal));
1045 if (zi == NULL)
1071 free(zi);
1076 *zi = ziinit;
1077 return (zipFile)zi;
1123 local int Write_LocalFileHeader(zip64_internal* zi, const char* filename, uInt size_extrafield_local, const void* extrafield_local)
1130 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)LOCALHEADERMAGIC, 4);
1134 if(zi->ci.zip64)
1136 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)45,2);/* version needed to extract */
1140 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)20,2);/* version needed to extract */
1146 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->ci.flag,2);
1151 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->ci.method,2);
1156 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->ci.dosDate,4);
1162 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); /* crc 32, unknown */
1166 if(zi->ci.zip64)
1168 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0xFFFFFFFF,4); /* compressed size, unknown */
1172 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); /* compressed size, unknown */
1177 if(zi->ci.zip64)
1179 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0xFFFFFFFF,4); /* uncompressed size, unknown */
1183 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); /* uncompressed size, unknown */
1189 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_filename,2);
1192 if(zi->ci.zip64)
1199 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_extrafield,2);
1204 if (ZWRITE64(zi->z_filefunc,zi->filestream,filename,size_filename) != size_filename)
1212 if (ZWRITE64(zi->z_filefunc, zi->filestream, extrafield_local, size_extrafield_local) != size_extrafield_local)
1219 if ((err == ZIP_OK) && (zi->ci.zip64))
1228 zi->ci.pos_zip64extrainfo = ZTELL64(zi->z_filefunc,zi->filestream);
1230 err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)HeaderID,2);
1231 err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)DataSize,2);
1233 err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)UncompressedSize,8);
1234 err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)CompressedSize,8);
1255 zip64_internal* zi;
1303 zi = (zip64_internal*)file;
1305 if (zi->in_opened_file_inzip == 1)
1332 zi->ci.dosDate = 0;
1338 zi->ci.dosDate = zipfi->dosDate;
1342 zi->ci.dosDate = zip64local_TmzDateToDosDate(&zipfi->tmz_date);
1346 zi->ci.flag = flagBase;
1349 zi->ci.flag |= 2;
1353 zi->ci.flag |= 4;
1357 zi->ci.flag |= 6;
1361 zi->ci.flag |= 1;
1364 zi->ci.crc32 = 0;
1365 zi->ci.method = method;
1366 zi->ci.encrypt = 0;
1367 zi->ci.stream_initialised = 0;
1368 zi->ci.pos_in_buffered_data = 0;
1369 zi->ci.raw = raw;
1370 zi->ci.pos_local_header = ZTELL64(zi->z_filefunc,zi->filestream);
1372 zi->ci.size_centralheader = SIZECENTRALHEADER + size_filename + size_extrafield_global + size_comment;
1373 zi->ci.size_centralExtraFree = 32; // Extra space we have reserved in case we need to add ZIP64 extra info data
1375 zi->ci.central_header = (char*)ALLOC((uInt)zi->ci.size_centralheader + zi->ci.size_centralExtraFree);
1377 zi->ci.size_centralExtra = size_extrafield_global;
1378 zip64local_putValue_inmemory(zi->ci.central_header,(uLong)CENTRALHEADERMAGIC,4);
1380 zip64local_putValue_inmemory(zi->ci.central_header+4,(uLong)versionMadeBy,2);
1381 zip64local_putValue_inmemory(zi->ci.central_header+6,(uLong)20,2);
1382 zip64local_putValue_inmemory(zi->ci.central_header+8,(uLong)zi->ci.flag,2);
1383 zip64local_putValue_inmemory(zi->ci.central_header+10,(uLong)zi->ci.method,2);
1384 zip64local_putValue_inmemory(zi->ci.central_header+12,(uLong)zi->ci.dosDate,4);
1385 zip64local_putValue_inmemory(zi->ci.central_header+16,(uLong)0,4); /*crc*/
1386 zip64local_putValue_inmemory(zi->ci.central_header+20,(uLong)0,4); /*compr size*/
1387 zip64local_putValue_inmemory(zi->ci.central_header+24,(uLong)0,4); /*uncompr size*/
1388 zip64local_putValue_inmemory(zi->ci.central_header+28,(uLong)size_filename,2);
1389 zip64local_putValue_inmemory(zi->ci.central_header+30,(uLong)size_extrafield_global,2);
1390 zip64local_putValue_inmemory(zi->ci.central_header+32,(uLong)size_comment,2);
1391 zip64local_putValue_inmemory(zi->ci.central_header+34,(uLong)0,2); /*disk nm start*/
1395 zip64local_putValue_inmemory(zi->ci.central_header + 36,(uLong)0,2);
1399 zip64local_putValue_inmemory(zi->ci.central_header + 36,(uLong)zipfi->internal_fa,2);
1404 zip64local_putValue_inmemory(zi->ci.central_header + 38,(uLong)0,4);
1408 zip64local_putValue_inmemory(zi->ci.central_header + 38,(uLong)zipfi->external_fa,4);
1411 if(zi->ci.pos_local_header >= 0xffffffff)
1413 zip64local_putValue_inmemory(zi->ci.central_header+42,(uLong)0xffffffff,4);
1417 zip64local_putValue_inmemory(zi->ci.central_header+42,(uLong)zi->ci.pos_local_header - zi->add_position_when_writing_offset,4);
1421 *(zi->ci.central_header + SIZECENTRALHEADER + i) = *(filename + i);
1425 *(zi->ci.central_header + SIZECENTRALHEADER + size_filename + i) =
1430 *(zi->ci.central_header + SIZECENTRALHEADER + size_filename +
1433 if (zi->ci.central_header == NULL)
1438 zi->ci.zip64 = zip64;
1439 zi->ci.totalCompressedData = 0;
1440 zi->ci.totalUncompressedData = 0;
1441 zi->ci.pos_zip64extrainfo = 0;
1443 err = Write_LocalFileHeader(zi, filename, size_extrafield_local, extrafield_local);
1446 zi->ci.bstream.avail_in = (uInt)0;
1447 zi->ci.bstream.avail_out = (uInt)Z_BUFSIZE;
1448 zi->ci.bstream.next_out = (char*)zi->ci.buffered_data;
1449 zi->ci.bstream.total_in_hi32 = 0;
1450 zi->ci.bstream.total_in_lo32 = 0;
1451 zi->ci.bstream.total_out_hi32 = 0;
1452 zi->ci.bstream.total_out_lo32 = 0;
1455 zi->ci.stream.avail_in = (uInt)0;
1456 zi->ci.stream.avail_out = (uInt)Z_BUFSIZE;
1457 zi->ci.stream.next_out = zi->ci.buffered_data;
1458 zi->ci.stream.total_in = 0;
1459 zi->ci.stream.total_out = 0;
1460 zi->ci.stream.data_type = Z_BINARY;
1463 if ((err == ZIP_OK) && (zi->ci.method == Z_DEFLATED || zi->ci.method == Z_BZIP2ED) && (!zi->ci.raw))
1465 if ((err == ZIP_OK) && (zi->ci.method == Z_DEFLATED) && (!zi->ci.raw))
1468 if(zi->ci.method == Z_DEFLATED)
1470 zi->ci.stream.zalloc = (alloc_func)0;
1471 zi->ci.stream.zfree = (free_func)0;
1472 zi->ci.stream.opaque = (voidpf)0;
1477 err = deflateInit2(&zi->ci.stream, level, Z_DEFLATED, windowBits, memLevel, strategy);
1481 zi->ci.stream_initialised = Z_DEFLATED;
1484 else if(zi->ci.method == Z_BZIP2ED)
1488 zi->ci.bstream.bzalloc = 0;
1489 zi->ci.bstream.bzfree = 0;
1490 zi->ci.bstream.opaque = (voidpf)0;
1492 err = BZ2_bzCompressInit(&zi->ci.bstream, level, 0,35);
1495 zi->ci.stream_initialised = Z_BZIP2ED;
1503 zi->ci.crypt_header_size = 0;
1508 zi->ci.encrypt = 1;
1509 zi->ci.pcrc_32_tab = get_crc_table();
1510 /*init_keys(password,zi->ci.keys,zi->ci.pcrc_32_tab);*/
1512 sizeHead=crypthead(password,bufHead,RAND_HEAD_LEN,zi->ci.keys,zi->ci.pcrc_32_tab,crcForCrypting);
1513 zi->ci.crypt_header_size = sizeHead;
1515 if (ZWRITE64(zi->z_filefunc,zi->filestream,bufHead,sizeHead) != sizeHead)
1524 zi->in_opened_file_inzip = 1;
1627 local int zip64FlushWriteBuffer(zip64_internal* zi)
1631 if (zi->ci.encrypt != 0)
1636 for (i = 0;i < zi->ci.pos_in_buffered_data; i++){
1637 zi->ci.buffered_data[i] = zencode(zi->ci.keys, zi->ci.pcrc_32_tab, zi->ci.buffered_data[i],t);
1642 if (ZWRITE64(zi->z_filefunc,zi->filestream,zi->ci.buffered_data,zi->ci.pos_in_buffered_data) != zi->ci.pos_in_buffered_data)
1647 zi->ci.totalCompressedData += zi->ci.pos_in_buffered_data;
1650 if(zi->ci.method == Z_BZIP2ED)
1652 zi->ci.totalUncompressedData += zi->ci.bstream.total_in_lo32;
1653 zi->ci.bstream.total_in_lo32 = 0;
1654 zi->ci.bstream.total_in_hi32 = 0;
1659 zi->ci.totalUncompressedData += zi->ci.stream.total_in;
1660 zi->ci.stream.total_in = 0;
1664 zi->ci.pos_in_buffered_data = 0;
1670 zip64_internal* zi;
1677 zi = (zip64_internal*)file;
1679 if (zi->in_opened_file_inzip == 0)
1684 zi->ci.crc32 = crc32(zi->ci.crc32,buf,(uInt)len);
1687 if(zi->ci.method == Z_BZIP2ED && (!zi->ci.raw))
1689 zi->ci.bstream.next_in = (void*)buf;
1690 zi->ci.bstream.avail_in = len;
1693 while ((err == BZ_RUN_OK) && (zi->ci.bstream.avail_in > 0))
1695 if (zi->ci.bstream.avail_out == 0)
1697 if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)
1701 zi->ci.bstream.avail_out = (uInt)Z_BUFSIZE;
1702 zi->ci.bstream.next_out = (char*)zi->ci.buffered_data;
1711 if ((zi->ci.method == Z_BZIP2ED) && (!zi->ci.raw))
1713 uLong uTotalOutBefore_lo = zi->ci.bstream.total_out_lo32;
1714 // uLong uTotalOutBefore_hi = zi->ci.bstream.total_out_hi32;
1715 err=BZ2_bzCompress(&zi->ci.bstream, BZ_RUN);
1717 zi->ci.pos_in_buffered_data += (uInt)(zi->ci.bstream.total_out_lo32 - uTotalOutBefore_lo) ;
1729 zi->ci.stream.next_in = (Bytef*)(uintptr_t)buf;
1730 zi->ci.stream.avail_in = len;
1732 while ((err == ZIP_OK) && (zi->ci.stream.avail_in > 0))
1734 if (zi->ci.stream.avail_out == 0)
1736 if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)
1740 zi->ci.stream.avail_out = (uInt)Z_BUFSIZE;
1741 zi->ci.stream.next_out = zi->ci.buffered_data;
1748 if ((zi->ci.method == Z_DEFLATED) && (!zi->ci.raw))
1750 uLong uTotalOutBefore = zi->ci.stream.total_out;
1751 err = deflate(&zi->ci.stream, Z_NO_FLUSH);
1753 zi->ci.pos_in_buffered_data += (uInt)(zi->ci.stream.total_out - uTotalOutBefore) ;
1758 if (zi->ci.stream.avail_in < zi->ci.stream.avail_out)
1759 copy_this = zi->ci.stream.avail_in;
1761 copy_this = zi->ci.stream.avail_out;
1764 *(((char*)zi->ci.stream.next_out) + i) =
1765 *(((const char*)zi->ci.stream.next_in) + i);
1768 zi->ci.stream.avail_in -= copy_this;
1769 zi->ci.stream.avail_out -= copy_this;
1770 zi->ci.stream.next_in += copy_this;
1771 zi->ci.stream.next_out += copy_this;
1772 zi->ci.stream.total_in += copy_this;
1773 zi->ci.stream.total_out += copy_this;
1774 zi->ci.pos_in_buffered_data += copy_this;
1790 zip64_internal* zi;
1800 zi = (zip64_internal*)file;
1802 if (zi->in_opened_file_inzip == 0)
1806 zi->ci.stream.avail_in = 0;
1808 if ((zi->ci.method == Z_DEFLATED) && (!zi->ci.raw))
1813 if (zi->ci.stream.avail_out == 0)
1815 if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)
1817 zi->ci.stream.avail_out = (uInt)Z_BUFSIZE;
1818 zi->ci.stream.next_out = zi->ci.buffered_data;
1820 uTotalOutBefore = zi->ci.stream.total_out;
1821 err=deflate(&zi->ci.stream, Z_FINISH);
1822 zi->ci.pos_in_buffered_data += (uInt)(zi->ci.stream.total_out - uTotalOutBefore) ;
1825 else if ((zi->ci.method == Z_BZIP2ED) && (!zi->ci.raw))
1832 if (zi->ci.bstream.avail_out == 0)
1834 if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)
1838 zi->ci.bstream.avail_out = (uInt)Z_BUFSIZE;
1839 zi->ci.bstream.next_out = (char*)zi->ci.buffered_data;
1841 uTotalOutBefore = zi->ci.bstream.total_out_lo32;
1842 err=BZ2_bzCompress(&zi->ci.bstream, BZ_FINISH);
1848 zi->ci.pos_in_buffered_data += (uInt)(zi->ci.bstream.total_out_lo32 - uTotalOutBefore);
1863 if ((zi->ci.pos_in_buffered_data>0) && (err == ZIP_OK))
1865 if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)
1871 if ((zi->ci.method == Z_DEFLATED) && (!zi->ci.raw))
1873 int tmp_err = deflateEnd(&zi->ci.stream);
1878 zi->ci.stream_initialised = 0;
1881 else if((zi->ci.method == Z_BZIP2ED) && (!zi->ci.raw))
1883 int tmperr = BZ2_bzCompressEnd(&zi->ci.bstream);
1888 zi->ci.stream_initialised = 0;
1892 if (!zi->ci.raw)
1894 crc32 = (uLong)zi->ci.crc32;
1895 uncompressed_size = zi->ci.totalUncompressedData;
1897 compressed_size = zi->ci.totalCompressedData;
1900 compressed_size += zi->ci.crypt_header_size;
1904 if(compressed_size >= 0xffffffff || uncompressed_size >= 0xffffffff || zi->ci.pos_local_header >= 0xffffffff)
1907 zip64local_putValue_inmemory(zi->ci.central_header+4,(uLong)45,2);
1909 zip64local_putValue_inmemory(zi->ci.central_header+6,(uLong)45,2);
1913 zip64local_putValue_inmemory(zi->ci.central_header+16,crc32,4); /*crc*/
1918 zip64local_putValue_inmemory(zi->ci.central_header+20, invalidValue,4); /*compr size*/
1922 zip64local_putValue_inmemory(zi->ci.central_header+20, compressed_size,4); /*compr size*/
1926 if (zi->ci.stream.data_type == Z_ASCII)
1928 zip64local_putValue_inmemory(zi->ci.central_header + 36,(uLong)Z_ASCII,2);
1933 zip64local_putValue_inmemory(zi->ci.central_header+24, invalidValue,4); /*uncompr size*/
1937 zip64local_putValue_inmemory(zi->ci.central_header+24, uncompressed_size,4); /*uncompr size*/
1953 if(zi->ci.pos_local_header >= 0xffffffff)
1962 if((uLong)(datasize + 4) > zi->ci.size_centralExtraFree)
1968 p = zi->ci.central_header + zi->ci.size_centralheader;
1988 if(zi->ci.pos_local_header >= 0xffffffff)
1990 zip64local_putValue_inmemory(p, zi->ci.pos_local_header, 8);
1997 zi->ci.size_centralExtraFree -= datasize + 4;
1998 zi->ci.size_centralheader += datasize + 4;
2001 zi->ci.size_centralExtra += datasize + 4;
2002 zip64local_putValue_inmemory(zi->ci.central_header+30,(uLong)zi->ci.size_centralExtra,2);
2007 err = add_data_in_datablock(&zi->central_dir, zi->ci.central_header, (uLong)zi->ci.size_centralheader);
2010 free(zi->ci.central_header);
2016 ZPOS64_T cur_pos_inzip = ZTELL64(zi->z_filefunc,zi->filestream);
2018 if (ZSEEK64(zi->z_filefunc,zi->filestream, zi->ci.pos_local_header + 14,ZLIB_FILEFUNC_SEEK_SET) != 0)
2025 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,crc32,4); /* crc 32, unknown */
2030 if(zi->ci.pos_zip64extrainfo > 0)
2033 if (ZSEEK64(zi->z_filefunc,zi->filestream, zi->ci.pos_zip64extrainfo + 4,ZLIB_FILEFUNC_SEEK_SET)!=0)
2040 err = zip64local_putValue(&zi->z_filefunc, zi->filestream, uncompressed_size, 8);
2045 err = zip64local_putValue(&zi->z_filefunc, zi->filestream, compressed_size, 8);
2057 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,compressed_size,4);
2062 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,uncompressed_size,4);
2066 if (ZSEEK64(zi->z_filefunc,zi->filestream, cur_pos_inzip,ZLIB_FILEFUNC_SEEK_SET) != 0)
2072 zi->number_entry ++;
2073 zi->in_opened_file_inzip = 0;
2083 local int Write_Zip64EndOfCentralDirectoryLocator(zip64_internal* zi, ZPOS64_T zip64eocd_pos_inzip)
2086 ZPOS64_T pos = zip64eocd_pos_inzip - zi->add_position_when_writing_offset;
2088 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)ZIP64ENDLOCHEADERMAGIC,4);
2093 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4);
2100 err = zip64local_putValue(&zi->z_filefunc,zi->filestream, pos,8);
2106 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)1,4);
2112 local int Write_Zip64EndOfCentralDirectoryRecord(zip64_internal* zi, uLong size_centraldir, ZPOS64_T centraldir_pos_inzip)
2118 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)ZIP64ENDHEADERMAGIC,4);
2122 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(ZPOS64_T)Zip64DataSize,8); // why ZPOS64_T of this ?
2127 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)45,2);
2132 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)45,2);
2137 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4);
2142 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4);
2147 err = zip64local_putValue(&zi->z_filefunc, zi->filestream, zi->number_entry, 8);
2152 err = zip64local_putValue(&zi->z_filefunc, zi->filestream, zi->number_entry, 8);
2157 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(ZPOS64_T)size_centraldir,8);
2162 ZPOS64_T pos = centraldir_pos_inzip - zi->add_position_when_writing_offset;
2163 err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (ZPOS64_T)pos,8);
2168 local int Write_EndOfCentralDirectoryRecord(zip64_internal* zi, uLong size_centraldir, ZPOS64_T centraldir_pos_inzip)
2173 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)ENDHEADERMAGIC,4);
2177 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,2);
2182 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,2);
2188 if(zi->number_entry >= 0xFFFF)
2190 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0xffff,2); // use value in ZIP64 record
2194 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->number_entry,2);
2201 if(zi->number_entry >= 0xFFFF)
2203 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0xffff,2); // use value in ZIP64 record
2207 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->number_entry,2);
2213 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_centraldir,4);
2218 ZPOS64_T pos = centraldir_pos_inzip - zi->add_position_when_writing_offset;
2221 err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (uLong)0xffffffff,4);
2224 err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (uLong)(centraldir_pos_inzip - zi->add_position_when_writing_offset),4);
2230 local int Write_GlobalComment(zip64_internal* zi, const char* global_comment)
2240 err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_global_comment,2);
2244 if (ZWRITE64(zi->z_filefunc,zi->filestream, global_comment, size_global_comment) != size_global_comment)
2254 zip64_internal* zi;
2265 zi = (zip64_internal*)file;
2267 if (zi->in_opened_file_inzip == 1)
2275 global_comment = zi->globalcomment;
2279 centraldir_pos_inzip = ZTELL64(zi->z_filefunc,zi->filestream);
2283 linkedlist_datablock_internal* ldi = zi->central_dir.first_block;
2288 if (ZWRITE64(zi->z_filefunc,zi->filestream, ldi->data, ldi->filled_in_this_block) != ldi->filled_in_this_block)
2298 free_linkedlist(&(zi->central_dir));
2300 pos = centraldir_pos_inzip - zi->add_position_when_writing_offset;
2301 if(pos >= 0xffffffff || zi->number_entry >= 0xFFFF)
2303 ZPOS64_T Zip64EOCDpos = ZTELL64(zi->z_filefunc,zi->filestream);
2304 Write_Zip64EndOfCentralDirectoryRecord(zi, size_centraldir, centraldir_pos_inzip);
2306 Write_Zip64EndOfCentralDirectoryLocator(zi, Zip64EOCDpos);
2311 err = Write_EndOfCentralDirectoryRecord(zi, size_centraldir, centraldir_pos_inzip);
2316 err = Write_GlobalComment(zi, global_comment);
2319 if (ZCLOSE64(zi->z_filefunc,zi->filestream) != 0)
2328 free(zi->globalcomment);
2330 free(zi);