* library/zipvfs.tcl: Fixed [SF Tclvfs Bug 1003574]. Added code
authorAndreas Kupries <andreas_kupries@users.sourceforge.net>
Wed, 4 Aug 2004 21:49:08 +0000 (21:49 +0000)
committerAndreas Kupries <andreas_kupries@users.sourceforge.net>
Wed, 4 Aug 2004 21:49:08 +0000 (21:49 +0000)
  preventing us from seeking before the beginning of the zip file.

ChangeLog
library/zipvfs.tcl

index eda8f776fc8c3f6beb2584a9519ea224421ec7a0..2d8878278238d684f18ab6c7abeadba0b3d1ada9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-08-04  Andreas Kupries  <andreask@activestate.com>
+
+       * library/zipvfs.tcl: Fixed [SF Tclvfs Bug 1003574]. Added code
+         preventing us from seeking before the beginning of the zip file.
+
 2004-07-15  Andreas Kupries  <andreask@activestate.com>
 
        * doc/vfs-fsapi.man: Clarified description of the close callback
index 80e48d9724d567477586e4063eb85359b1d0ecc8..87f656d68c6c78224ce7b057f497d00e9d1adcca 100644 (file)
@@ -328,7 +328,12 @@ proc zip::Data {fd arr {varPtr ""} {verify 0}} {
 proc zip::EndOfArchive {fd arr} {
     upvar 1 $arr cb
 
-    seek $fd -512 end
+    # [SF Tclvfs Bug 1003574]. Do not seek over beginning of file.
+    seek $fd 0 end
+    set n [tell $fd]
+    if {$n < 512} {set n -$n} else {set n -512}
+    seek $fd $n end
+
     set hdr [read $fd 512]
     set pos [string first "PK\05\06" $hdr]
     if {$pos == -1} {