- Refactored low-level methods for reading and writing zip files
in zip64 format. Added new parameters and return values to
most of these. Extended constants in Archive::Zip to cover
zip64 formats and lengths.
- Added public APIs
Archive::Zip::Archive::zip64
Archive::Zip::Archive::desiredZip64Mode
Archive::Zip::Archive::versionMadeBy
Archive::Zip::Archive::versionNeededToExtract
Archive::Zip::Member::zip64
Archive::Zip::Member::desiredZip64Mode
and constants
Archive::Zip::ZIP64_AS_NEEDED
Archive::Zip::ZIP64_EOCD
Archive::Zip::ZIP64_HEADERS
plus POD on these.
- Added tests for zip64 format in t/21_zip64.t and more test zip
files below t/data. Extended tests in t/02_main.t to perform
all existing tests in all possible desired zip64 modes.
- Extended methods
Archive::Zip::Member::localExtraField
Archive::Zip::Member::cdExtraField
to perform format checks when called as setters and to reject
any zip64 extended information extra fields passed by the user.
Extended POD and tests in t/02_main.t accordingly.
- Setting {'compressedSize'} after writing central directory
header.
- Added new optional parameter $noFormatError to method
Archive::Zip::_readSignature to silence any format errros when
testing for signatures.
- Added error handling for potentially failed object conversion
after calling method Archive::Zip::Member::_become. Factored
in method Archive::Zip::Member::_becomeDirectoryIfNecessary
into caller.
- Changed methods
Archive::Zip::Archive::contents
Archive::Zip::Member::contents
(and all inheriting from these) to consistently return a pair
($contents, $status) when called in list context and a scalar
$contents when called in scalar context. Extended tests in
t/02_main.t accordingly.
- Changed method Archive::Zip::Member::extractToFileHandle to
accept a file name instead of a file handle when extracting
symbolic links. Changed lower-level and higher-level methods
to use that feature. Cleaned up code related to the handling
of symbolic links. Added creation of intermediate directories
in method Archive::Zip::Member::extractToFileNamed for symbolic
links as well. Reporting errors from symlink call as AZ-error.
Added POD and test zip file t/data/symlink.zip and tests in
t/26_symlinks.t for these changes.
- Cleaned up code and added comment related to that highly
dubious (?) {'wasWritten'} logic.