Index: tclvfs/patches/all/tclvfs-20080503-zipvfs-clock_and_append_to_exe.diff ================================================================== --- tclvfs/patches/all/tclvfs-20080503-zipvfs-clock_and_append_to_exe.diff +++ tclvfs/patches/all/tclvfs-20080503-zipvfs-clock_and_append_to_exe.diff @@ -1,10 +1,20 @@ -Binary files tclvfs-20080503.orig//library/.zipvfs.tcl.swp and tclvfs-20080503-1rsk//library/.zipvfs.tcl.swp differ -diff -uNr tclvfs-20080503.orig//library/zipvfs.tcl tclvfs-20080503-1rsk//library/zipvfs.tcl ---- tclvfs-20080503.orig//library/zipvfs.tcl 2008-04-15 16:11:53.000000000 -0500 -+++ tclvfs-20080503-1rsk//library/zipvfs.tcl 2010-09-10 06:48:25.026165002 -0500 -@@ -255,21 +255,21 @@ +diff -uNr tclvfs-20080503.orig/library/zipvfs.tcl tclvfs-20080503-3rsk/library/zipvfs.tcl +--- tclvfs-20080503.orig/library/zipvfs.tcl 2008-04-15 16:11:53.000000000 -0500 ++++ tclvfs-20080503-3rsk/library/zipvfs.tcl 2010-09-19 03:37:33.000000000 -0500 +@@ -107,6 +107,10 @@ + + ::zip::stat $zipfd $name sb + ++ if {$sb(ino) == -1} { ++ vfs::filesystem posixerror $::vfs::posix(EISDIR) ++ } ++ + set nfd [vfs::memchan] + fconfigure $nfd -translation binary + +@@ -255,21 +259,21 @@ set year [expr { (($date >> 9) & 0xFF) + 1980 }] # Fix up bad date/time data, no need to fail - while {$sec > 59} {incr sec -60} - while {$min > 59} {incr sec -60} @@ -32,31 +42,31 @@ } + return $res } -@@ -400,6 +400,7 @@ +@@ -400,6 +404,7 @@ } proc zip::TOC {fd arr} { + upvar #0 zip::$fd cb upvar 1 $arr sb set buf [read $fd 46] -@@ -410,6 +411,8 @@ +@@ -410,6 +415,8 @@ flen elen clen sb(disk) sb(attr) \ sb(atx) sb(ino) + set sb(ino) [expr {$cb(base) + $sb(ino)}] + if { ![string equal "PK\01\02" $hdr] } { binary scan $hdr H* x error "bad central header: $x" -@@ -442,7 +445,7 @@ +@@ -442,7 +449,7 @@ zip::EndOfArchive $fd cb - seek $fd $cb(coff) start + seek $fd [expr {$cb(base) + $cb(coff)}] start set toc(_) 0; unset toc(_); #MakeArray