Previously, only the extra fields stored in the central directory were being read in. In reality it is often the case that the extra field in the central directory is just a marker, and the full data is in the local header. So we need to read both in and merge the two into the final correct extra field. This merging infrastructure was already implemented in the extra field code but we never actually read the local extra fields in until now. Reading the central directory headers and local entry headers seems rather fragile, so we can't just read one over the other and hope to end up with a correctly merged set of extra fields because this breaks other things. So we need to specifically read the local extra field data and merge just those bits. This commit also fixes a couple of tests that were 'broken' by us now reading extra fields in correctly! |
||
---|---|---|
.. | ||
dir_iterator_test.rb | ||
directory_test.rb | ||
file_mutating_test.rb | ||
file_nonmutating_test.rb | ||
file_stat_test.rb |