From 8f2a74049e62a940513263708d1e74c38a0c7589 Mon Sep 17 00:00:00 2001 From: Zbigniew Baniewski Date: Sun, 9 Jan 2011 01:41:17 -0200 Subject: development/tclvfs: Added (virtial filesystem extension for Tcl) Signed-off-by: Niels Horn --- development/tclvfs/patches/06-zipfix.patch | 41 ++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 development/tclvfs/patches/06-zipfix.patch (limited to 'development/tclvfs/patches/06-zipfix.patch') diff --git a/development/tclvfs/patches/06-zipfix.patch b/development/tclvfs/patches/06-zipfix.patch new file mode 100644 index 0000000000000..8ca6e1c1ae9ce --- /dev/null +++ b/development/tclvfs/patches/06-zipfix.patch @@ -0,0 +1,41 @@ +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 + -- cgit v1.2.3