diff options
author | Paul Duncan <pabs@pablotron.org> | 2016-08-10 15:13:47 -0400 |
---|---|---|
committer | Paul Duncan <pabs@pablotron.org> | 2016-08-10 15:13:47 -0400 |
commit | dd9f95821852ff7cc20e460e64a145456799a726 (patch) | |
tree | a76aaeb690c86862ef4cce845fbbf0d8aa7f2d7d | |
parent | 64da3c3f2ac8750bebff0abeefc6774dca404226 (diff) | |
download | zip-crystal-dd9f95821852ff7cc20e460e64a145456799a726.tar.bz2 zip-crystal-dd9f95821852ff7cc20e460e64a145456799a726.zip |
add comments, flag memory io as read-only
-rw-r--r-- | src/zip.cr | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -945,8 +945,11 @@ module Zip @method = CompressionMethod.new( UInt16.from_io(head_mem_io, LE).as(UInt16).to_i32 ) + + # TODO: convert to Time object @datetime = UInt32.from_io(head_mem_io, LE).as(UInt32) + # read crc and lengths @crc = UInt32.from_io(head_mem_io, LE).as(UInt32) @compressed_size = UInt32.from_io(head_mem_io, LE).as(UInt32) @uncompressed_size = UInt32.from_io(head_mem_io, LE).as(UInt32) @@ -956,8 +959,10 @@ module Zip @extras_len = UInt16.from_io(head_mem_io, LE).as(UInt16) @comment_len = UInt16.from_io(head_mem_io, LE).as(UInt16) + # read starting disk @disk_start = UInt16.from_io(head_mem_io, LE).as(UInt16) + # read attributes and position @internal_attr = UInt16.from_io(head_mem_io, LE).as(UInt16) @external_attr = UInt32.from_io(head_mem_io, LE).as(UInt32) @pos = UInt32.from_io(head_mem_io, LE).as(UInt32) @@ -966,6 +971,7 @@ module Zip head_mem_io.close # create and populate data buffer + # (holds path, extras, and comment data) data_len = @path_len + @extras_len + @comment_len data_buf = Bytes.new(data_len) if io.read(data_buf) != data_len @@ -1011,7 +1017,7 @@ module Zip @io.read(buf) # create memory io from buffer - mem_io = MemoryIO.new(buf) + mem_io = MemoryIO.new(buf, false) # check magic header magic = UInt32.from_io(mem_io, LE) |