Differences From Artifact [03f366c882]:
- File
src/OFZIPArchive.m
— part of check-in
[a847357585]
at
2023-07-26 19:05:36
on branch trunk
— OFZIPArchive: Handle CD spanning multiple parts
Unfortunately, I could not find a file to test this with, as this is an
extremely rare corner case that basically doesn't seem to exist with
real world files: It requires an extremely small part size for an
archive with thousands of files. (user: js, size: 28748) [annotate] [blame] [check-ins using] [more...]
To Artifact [0f27411636]:
- File src/OFZIPArchive.m — part of check-in [8d4650f6c1] at 2024-03-10 23:33:44 on branch 1.0 — OFZIPArchive: Write correct number of disks (user: js, size: 28733) [annotate] [blame] [check-ins using] [more...]
1 | 1 2 3 4 5 6 7 8 9 | - + | /* |
︙ | |||
339 340 341 342 343 344 345 | 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 | - + - - - - + + | /* * FIXME: Handle number of the disk containing ZIP64 end of * central directory record. */ diskNumber = [_stream readLittleEndianInt32]; offset64 = [_stream readLittleEndianInt64]; |
︙ | |||
575 576 577 578 579 580 581 582 583 584 585 586 587 588 | 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 | + | entry.versionMadeBy = (entry.versionMadeBy & 0xFF00) | 45; entry.minVersionNeeded = (entry.minVersionNeeded & 0xFF00) | 45; entry.compressedSize = 0; entry.uncompressedSize = 0; entry.CRC32 = 0; entry.generalPurposeBitFlag |= (seekable ? 0 : (1u << 3)) | (1u << 11); entry.of_startDiskNumber = _diskNumber; entry.of_localFileHeaderOffset = _offset; [_stream writeLittleEndianInt32: 0x04034B50]; [_stream writeLittleEndianInt16: entry.minVersionNeeded]; [_stream writeLittleEndianInt16: entry.generalPurposeBitFlag]; [_stream writeLittleEndianInt16: entry.compressionMethod]; [_stream writeLittleEndianInt16: entry.of_lastModifiedFileTime]; |
︙ | |||
659 660 661 662 663 664 665 | 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 | - + | [_stream writeLittleEndianInt64: _centralDirectoryOffset]; /* ZIP64 end of central directory locator */ [_stream writeLittleEndianInt32: 0x07064B50]; [_stream writeLittleEndianInt32: _diskNumber]; [_stream writeLittleEndianInt64: _centralDirectoryOffset + _centralDirectorySize]; |
︙ |