MCPcopy Create free account
hub / github.com/DreamSourceLab/DSView / zipCloseFileInZipRaw64

Function zipCloseFileInZipRaw64

common/minizip/zip.c:1514–1748  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1512}
1513
1514extern int ZEXPORT zipCloseFileInZipRaw64 (zipFile file, ZPOS64_T uncompressed_size, uLong crc32)
1515{
1516 zip64_internal* zi;
1517 ZPOS64_T compressed_size;
1518 uLong invalidValue = 0xffffffff;
1519 short datasize = 0;
1520 int err=ZIP_OK;
1521
1522 if (file == NULL)
1523 return ZIP_PARAMERROR;
1524 zi = (zip64_internal*)file;
1525
1526 if (zi->in_opened_file_inzip == 0)
1527 return ZIP_PARAMERROR;
1528 zi->ci.stream.avail_in = 0;
1529
1530 if ((zi->ci.method == Z_DEFLATED) && (!zi->ci.raw))
1531 {
1532 while (err==ZIP_OK)
1533 {
1534 uLong uTotalOutBefore;
1535 if (zi->ci.stream.avail_out == 0)
1536 {
1537 if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)
1538 err = ZIP_ERRNO;
1539 zi->ci.stream.avail_out = (uInt)Z_BUFSIZE;
1540 zi->ci.stream.next_out = zi->ci.buffered_data;
1541 }
1542 uTotalOutBefore = zi->ci.stream.total_out;
1543 err=deflate(&zi->ci.stream, Z_FINISH);
1544 zi->ci.pos_in_buffered_data += (uInt)(zi->ci.stream.total_out - uTotalOutBefore) ;
1545 }
1546 }
1547 else if ((zi->ci.method == Z_BZIP2ED) && (!zi->ci.raw))
1548 {
1549#ifdef HAVE_BZIP2
1550 err = BZ_FINISH_OK;
1551 while (err==BZ_FINISH_OK)
1552 {
1553 uLong uTotalOutBefore;
1554 if (zi->ci.bstream.avail_out == 0)
1555 {
1556 if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)
1557 err = ZIP_ERRNO;
1558 zi->ci.bstream.avail_out = (uInt)Z_BUFSIZE;
1559 zi->ci.bstream.next_out = (char*)zi->ci.buffered_data;
1560 }
1561 uTotalOutBefore = zi->ci.bstream.total_out_lo32;
1562 err=BZ2_bzCompress(&zi->ci.bstream, BZ_FINISH);
1563 if(err == BZ_STREAM_END)
1564 err = Z_STREAM_END;
1565
1566 zi->ci.pos_in_buffered_data += (uInt)(zi->ci.bstream.total_out_lo32 - uTotalOutBefore);
1567 }
1568
1569 if(err == BZ_FINISH_OK)
1570 err = ZIP_OK;
1571#endif

Callers 1

zipCloseFileInZipRawFunction · 0.85

Calls 4

zip64FlushWriteBufferFunction · 0.85
add_data_in_datablockFunction · 0.85
zip64local_putValueFunction · 0.85

Tested by

no test coverage detected