mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-14 21:56:41 +01:00
8f2a74049e
Signed-off-by: Niels Horn <niels.horn@slackbuilds.org>
41 lines
1.1 KiB
Diff
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
|
|
|