slackbuilds_ponce/development/tclvfs/patches/06-zipfix.patch
Zbigniew Baniewski 8f2a74049e development/tclvfs: Added (virtial filesystem extension for Tcl)
Signed-off-by: Niels Horn <niels.horn@slackbuilds.org>
2011-01-10 15:04:24 -06:00

41 lines
1.1 KiB
Diff

Patch by Victor Wagner (modified by Sergei Golovan for archives less
than 512 bytes long) fixes zip vfs to work with prepended executable.
--- tclvfs-1.3-20080503.orig/library/zipvfs.tcl
+++ tclvfs-1.3-20080503/library/zipvfs.tcl
@@ -113,7 +113,8 @@
set translation [fconfigure $nfd -translation]
fconfigure $nfd -translation binary
- seek $zipfd $sb(ino) start
+ upvar #0 zip::$zipfd cb
+ seek $zipfd [expr {$sb(ino)+$cb(base)}] start
zip::Data $zipfd sb data
puts -nonewline $nfd $data
@@ -370,6 +371,7 @@
seek $fd $n end
set hdr [read $fd $len]
+ set read [string length $hdr]
set pos [string first "PK\05\06" $hdr]
if {$pos == -1} {
if {$at >= $sz} {
@@ -384,7 +386,7 @@
}
set hdr [string range $hdr [expr $pos + 4] [expr $pos + 21]]
- set pos [expr [tell $fd] + $pos - 512]
+ set pos [expr [tell $fd] + $pos - $read]
binary scan $hdr ssssiis \
cb(ndisk) cb(cdisk) \
@@ -445,7 +447,7 @@
zip::EndOfArchive $fd cb
- seek $fd $cb(coff) start
+ seek $fd [expr {$cb(coff)+$cb(base)}] start
set toc(_) 0; unset toc(_); #MakeArray