Artifact b74bd5027ccbe9ca1d3e7283f2ca2bc9f999e933:
- File
tclvfs/patches/all/tclvfs-20080503-zipvfs-clock_and_append_to_exe.diff
— part of check-in
[66535d6924]
at
2010-09-26 04:43:48
on branch trunk
— KitCreator 0.3.0.x
Added support for using ZIP archives if MK4 fails to build
Removed support for pure-Tcl MK4 (it didn't work) (user: rkeene, size: 1788) [annotate] [blame] [check-ins using]
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 @@ 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} - while {$hour > 23} {incr hour -24} - if {$mday < 1} {incr mday} - if {$mon < 1} {incr mon} - while {$mon > 12} {incr hour -12} + if {$sec > 59} {set sec 59} + if {$min > 59} {set sec 59} + if {$hour > 23} {set hour 23} + if {$mday < 1} {set mday 1} + if {$mday > 31} {set mday 31} + if {$mon < 1} {set mon 1} + if {$mon > 12} {set mon 12} - while {[catch { + set res 0 + catch { set dt [format {%4.4d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d} \ $year $mon $mday $hour $min $sec] set res [clock scan $dt -gmt 1] - }]} { - # Only mday can be wrong, at end of month - incr mday -1 } + return $res } @@ -400,6 +400,7 @@ } proc zip::TOC {fd arr} { + upvar #0 zip::$fd cb upvar 1 $arr sb set buf [read $fd 46] @@ -410,6 +411,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 @@ zip::EndOfArchive $fd cb - seek $fd $cb(coff) start + seek $fd [expr {$cb(base) + $cb(coff)}] start set toc(_) 0; unset toc(_); #MakeArray