* library/zipvfs.tcl (zip::Data): add zip::stat call that
authorJeff Hobbs <hobbs@users.sourceforge.net>
Fri, 4 Jun 2004 19:21:56 +0000 (19:21 +0000)
committerJeff Hobbs <hobbs@users.sourceforge.net>
Fri, 4 Jun 2004 19:21:56 +0000 (19:21 +0000)
correctly determines size for some zip files (Ferril).

library/zipvfs.tcl

index 3052521bd3ed073fd176e9d8fd2ab5380b0fac7d..253c442b3f03e044036c7600ac1c37bc4f88e6b8 100644 (file)
@@ -282,6 +282,16 @@ proc zip::Data {fd arr {varPtr ""} {verify 0}} {
     if { $varPtr == "" } {
        seek $fd $sb(csize) current
     } else {
+       # Added by Chuck Ferril 10-26-03 to fix reading of OpenOffice
+       #  .sxw files. Any files in the zip that had a method of 8
+       #  (deflate) failed here because size and csize were zero.
+       #  I'm not sure why the above computes the size and csize
+       #  wrong, but stat appears works properly. I originally
+       #  checked for csize of zero, but adding this change didn't
+       #  appear to break the none deflated file access and seemed
+       #  more natural.
+       zip::stat $fd $sb(name) sb
+
        set data [read $fd $sb(csize)]
     }