Hex Artifact Content

Artifact b74bd5027ccbe9ca1d3e7283f2ca2bc9f999e933:


0000: 42 69 6e 61 72 79 20 66 69 6c 65 73 20 74 63 6c  Binary files tcl
0010: 76 66 73 2d 32 30 30 38 30 35 30 33 2e 6f 72 69  vfs-20080503.ori
0020: 67 2f 2f 6c 69 62 72 61 72 79 2f 2e 7a 69 70 76  g//library/.zipv
0030: 66 73 2e 74 63 6c 2e 73 77 70 20 61 6e 64 20 74  fs.tcl.swp and t
0040: 63 6c 76 66 73 2d 32 30 30 38 30 35 30 33 2d 31  clvfs-20080503-1
0050: 72 73 6b 2f 2f 6c 69 62 72 61 72 79 2f 2e 7a 69  rsk//library/.zi
0060: 70 76 66 73 2e 74 63 6c 2e 73 77 70 20 64 69 66  pvfs.tcl.swp dif
0070: 66 65 72 0a 64 69 66 66 20 2d 75 4e 72 20 74 63  fer.diff -uNr tc
0080: 6c 76 66 73 2d 32 30 30 38 30 35 30 33 2e 6f 72  lvfs-20080503.or
0090: 69 67 2f 2f 6c 69 62 72 61 72 79 2f 7a 69 70 76  ig//library/zipv
00a0: 66 73 2e 74 63 6c 20 74 63 6c 76 66 73 2d 32 30  fs.tcl tclvfs-20
00b0: 30 38 30 35 30 33 2d 31 72 73 6b 2f 2f 6c 69 62  080503-1rsk//lib
00c0: 72 61 72 79 2f 7a 69 70 76 66 73 2e 74 63 6c 0a  rary/zipvfs.tcl.
00d0: 2d 2d 2d 20 74 63 6c 76 66 73 2d 32 30 30 38 30  --- tclvfs-20080
00e0: 35 30 33 2e 6f 72 69 67 2f 2f 6c 69 62 72 61 72  503.orig//librar
00f0: 79 2f 7a 69 70 76 66 73 2e 74 63 6c 09 32 30 30  y/zipvfs.tcl.200
0100: 38 2d 30 34 2d 31 35 20 31 36 3a 31 31 3a 35 33  8-04-15 16:11:53
0110: 2e 30 30 30 30 30 30 30 30 30 20 2d 30 35 30 30  .000000000 -0500
0120: 0a 2b 2b 2b 20 74 63 6c 76 66 73 2d 32 30 30 38  .+++ tclvfs-2008
0130: 30 35 30 33 2d 31 72 73 6b 2f 2f 6c 69 62 72 61  0503-1rsk//libra
0140: 72 79 2f 7a 69 70 76 66 73 2e 74 63 6c 09 32 30  ry/zipvfs.tcl.20
0150: 31 30 2d 30 39 2d 31 30 20 30 36 3a 34 38 3a 32  10-09-10 06:48:2
0160: 35 2e 30 32 36 31 36 35 30 30 32 20 2d 30 35 30  5.026165002 -050
0170: 30 0a 40 40 20 2d 32 35 35 2c 32 31 20 2b 32 35  0.@@ -255,21 +25
0180: 35 2c 32 31 20 40 40 0a 20 20 20 20 20 73 65 74  5,21 @@.     set
0190: 20 79 65 61 72 20 5b 65 78 70 72 20 7b 20 28 28   year [expr { ((
01a0: 24 64 61 74 65 20 3e 3e 20 39 29 20 26 20 30 78  $date >> 9) & 0x
01b0: 46 46 29 20 2b 20 31 39 38 30 20 7d 5d 0a 20 0a  FF) + 1980 }]. .
01c0: 20 20 20 20 20 23 20 46 69 78 20 75 70 20 62 61       # Fix up ba
01d0: 64 20 64 61 74 65 2f 74 69 6d 65 20 64 61 74 61  d date/time data
01e0: 2c 20 6e 6f 20 6e 65 65 64 20 74 6f 20 66 61 69  , no need to fai
01f0: 6c 0a 2d 20 20 20 20 77 68 69 6c 65 20 7b 24 73  l.-    while {$s
0200: 65 63 20 20 3e 20 35 39 7d 20 7b 69 6e 63 72 20  ec  > 59} {incr 
0210: 73 65 63 20 20 2d 36 30 7d 0a 2d 20 20 20 20 77  sec  -60}.-    w
0220: 68 69 6c 65 20 7b 24 6d 69 6e 20 20 3e 20 35 39  hile {$min  > 59
0230: 7d 20 7b 69 6e 63 72 20 73 65 63 20 20 2d 36 30  } {incr sec  -60
0240: 7d 0a 2d 20 20 20 20 77 68 69 6c 65 20 7b 24 68  }.-    while {$h
0250: 6f 75 72 20 3e 20 32 33 7d 20 7b 69 6e 63 72 20  our > 23} {incr 
0260: 68 6f 75 72 20 2d 32 34 7d 0a 2d 20 20 20 20 69  hour -24}.-    i
0270: 66 20 7b 24 6d 64 61 79 20 3c 20 31 7d 20 20 7b  f {$mday < 1}  {
0280: 69 6e 63 72 20 6d 64 61 79 7d 0a 2d 20 20 20 20  incr mday}.-    
0290: 69 66 20 7b 24 6d 6f 6e 20 20 3c 20 31 7d 20 20  if {$mon  < 1}  
02a0: 7b 69 6e 63 72 20 6d 6f 6e 7d 0a 2d 20 20 20 20  {incr mon}.-    
02b0: 77 68 69 6c 65 20 7b 24 6d 6f 6e 20 3e 20 31 32  while {$mon > 12
02c0: 7d 20 7b 69 6e 63 72 20 68 6f 75 72 20 2d 31 32  } {incr hour -12
02d0: 7d 0a 2b 20 20 20 20 69 66 20 7b 24 73 65 63 20  }.+    if {$sec 
02e0: 20 3e 20 35 39 7d 20 7b 73 65 74 20 73 65 63 20   > 59} {set sec 
02f0: 20 35 39 7d 0a 2b 20 20 20 20 69 66 20 7b 24 6d   59}.+    if {$m
0300: 69 6e 20 20 3e 20 35 39 7d 20 7b 73 65 74 20 73  in  > 59} {set s
0310: 65 63 20 20 35 39 7d 0a 2b 20 20 20 20 69 66 20  ec  59}.+    if 
0320: 7b 24 68 6f 75 72 20 3e 20 32 33 7d 20 7b 73 65  {$hour > 23} {se
0330: 74 20 68 6f 75 72 20 32 33 7d 0a 2b 20 20 20 20  t hour 23}.+    
0340: 69 66 20 7b 24 6d 64 61 79 20 3c 20 31 7d 20 20  if {$mday < 1}  
0350: 7b 73 65 74 20 6d 64 61 79 20 31 7d 0a 2b 20 20  {set mday 1}.+  
0360: 20 20 69 66 20 7b 24 6d 64 61 79 20 3e 20 33 31    if {$mday > 31
0370: 7d 20 7b 73 65 74 20 6d 64 61 79 20 33 31 7d 0a  } {set mday 31}.
0380: 2b 20 20 20 20 69 66 20 7b 24 6d 6f 6e 20 20 3c  +    if {$mon  <
0390: 20 31 7d 20 20 7b 73 65 74 20 6d 6f 6e 20 20 31   1}  {set mon  1
03a0: 7d 0a 2b 20 20 20 20 69 66 20 7b 24 6d 6f 6e 20  }.+    if {$mon 
03b0: 3e 20 31 32 7d 20 20 7b 73 65 74 20 6d 6f 6e 20  > 12}  {set mon 
03c0: 20 31 32 7d 0a 20 0a 2d 20 20 20 20 77 68 69 6c   12}. .-    whil
03d0: 65 20 7b 5b 63 61 74 63 68 20 7b 0a 2b 20 20 20  e {[catch {.+   
03e0: 20 73 65 74 20 72 65 73 20 30 0a 2b 20 20 20 20   set res 0.+    
03f0: 63 61 74 63 68 20 7b 0a 20 09 73 65 74 20 64 74  catch {. .set dt
0400: 20 5b 66 6f 72 6d 61 74 20 7b 25 34 2e 34 64 2d   [format {%4.4d-
0410: 25 32 2e 32 64 2d 25 32 2e 32 64 20 25 32 2e 32  %2.2d-%2.2d %2.2
0420: 64 3a 25 32 2e 32 64 3a 25 32 2e 32 64 7d 20 5c  d:%2.2d:%2.2d} \
0430: 0a 20 09 09 20 20 20 20 24 79 65 61 72 20 24 6d  . ..    $year $m
0440: 6f 6e 20 24 6d 64 61 79 20 24 68 6f 75 72 20 24  on $mday $hour $
0450: 6d 69 6e 20 24 73 65 63 5d 0a 20 09 73 65 74 20  min $sec]. .set 
0460: 72 65 73 20 5b 63 6c 6f 63 6b 20 73 63 61 6e 20  res [clock scan 
0470: 24 64 74 20 2d 67 6d 74 20 31 5d 0a 2d 20 20 20  $dt -gmt 1].-   
0480: 20 7d 5d 7d 20 7b 0a 2d 09 23 20 4f 6e 6c 79 20   }]} {.-.# Only 
0490: 6d 64 61 79 20 63 61 6e 20 62 65 20 77 72 6f 6e  mday can be wron
04a0: 67 2c 20 61 74 20 65 6e 64 20 6f 66 20 6d 6f 6e  g, at end of mon
04b0: 74 68 0a 2d 09 69 6e 63 72 20 6d 64 61 79 20 2d  th.-.incr mday -
04c0: 31 0a 20 20 20 20 20 7d 0a 2b 0a 20 20 20 20 20  1.     }.+.     
04d0: 72 65 74 75 72 6e 20 24 72 65 73 0a 20 7d 0a 20  return $res. }. 
04e0: 0a 40 40 20 2d 34 30 30 2c 36 20 2b 34 30 30 2c  .@@ -400,6 +400,
04f0: 37 20 40 40 0a 20 7d 0a 20 0a 20 70 72 6f 63 20  7 @@. }. . proc 
0500: 7a 69 70 3a 3a 54 4f 43 20 7b 66 64 20 61 72 72  zip::TOC {fd arr
0510: 7d 20 7b 0a 2b 20 20 20 20 75 70 76 61 72 20 23  } {.+    upvar #
0520: 30 20 7a 69 70 3a 3a 24 66 64 20 63 62 0a 20 20  0 zip::$fd cb.  
0530: 20 20 20 75 70 76 61 72 20 31 20 24 61 72 72 20     upvar 1 $arr 
0540: 73 62 0a 20 0a 20 20 20 20 20 73 65 74 20 62 75  sb. .     set bu
0550: 66 20 5b 72 65 61 64 20 24 66 64 20 34 36 5d 0a  f [read $fd 46].
0560: 40 40 20 2d 34 31 30 2c 36 20 2b 34 31 31 2c 38  @@ -410,6 +411,8
0570: 20 40 40 0a 20 20 20 20 20 20 20 66 6c 65 6e 20   @@.       flen 
0580: 65 6c 65 6e 20 63 6c 65 6e 20 73 62 28 64 69 73  elen clen sb(dis
0590: 6b 29 20 73 62 28 61 74 74 72 29 20 5c 0a 20 20  k) sb(attr) \.  
05a0: 20 20 20 20 20 73 62 28 61 74 78 29 20 73 62 28       sb(atx) sb(
05b0: 69 6e 6f 29 0a 20 0a 2b 20 20 20 20 73 65 74 20  ino). .+    set 
05c0: 73 62 28 69 6e 6f 29 20 5b 65 78 70 72 20 7b 24  sb(ino) [expr {$
05d0: 63 62 28 62 61 73 65 29 20 2b 20 24 73 62 28 69  cb(base) + $sb(i
05e0: 6e 6f 29 7d 5d 0a 2b 0a 20 20 20 20 20 69 66 20  no)}].+.     if 
05f0: 7b 20 21 5b 73 74 72 69 6e 67 20 65 71 75 61 6c  { ![string equal
0600: 20 22 50 4b 5c 30 31 5c 30 32 22 20 24 68 64 72   "PK\01\02" $hdr
0610: 5d 20 7d 20 7b 0a 20 09 62 69 6e 61 72 79 20 73  ] } {. .binary s
0620: 63 61 6e 20 24 68 64 72 20 48 2a 20 78 0a 20 09  can $hdr H* x. .
0630: 65 72 72 6f 72 20 22 62 61 64 20 63 65 6e 74 72  error "bad centr
0640: 61 6c 20 68 65 61 64 65 72 3a 20 24 78 22 0a 40  al header: $x".@
0650: 40 20 2d 34 34 32 2c 37 20 2b 34 34 35 2c 37 20  @ -442,7 +445,7 
0660: 40 40 0a 20 09 0a 20 09 7a 69 70 3a 3a 45 6e 64  @@. .. .zip::End
0670: 4f 66 41 72 63 68 69 76 65 20 24 66 64 20 63 62  OfArchive $fd cb
0680: 0a 20 0a 2d 09 73 65 65 6b 20 24 66 64 20 24 63  . .-.seek $fd $c
0690: 62 28 63 6f 66 66 29 20 73 74 61 72 74 0a 2b 09  b(coff) start.+.
06a0: 73 65 65 6b 20 24 66 64 20 5b 65 78 70 72 20 7b  seek $fd [expr {
06b0: 24 63 62 28 62 61 73 65 29 20 2b 20 24 63 62 28  $cb(base) + $cb(
06c0: 63 6f 66 66 29 7d 5d 20 73 74 61 72 74 0a 20 0a  coff)}] start. .
06d0: 20 09 73 65 74 20 74 6f 63 28 5f 29 20 30 3b 20   .set toc(_) 0; 
06e0: 75 6e 73 65 74 20 74 6f 63 28 5f 29 3b 20 23 4d  unset toc(_); #M
06f0: 61 6b 65 41 72 72 61 79 0a 20 09 0a              akeArray. ..