TclVFS

Check-in [d499446fc6]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:2010-12-30 Steve Huntley <[email protected]> * library/zipvfs.tcl: Wojciech Kocjan contributed tweaks to my latest "Frankenstein" patch, which I incorporated.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: d499446fc641c844c22deef4d13462365f02a4cd
User & Date: blacksqr 2010-12-31 04:56:44.000
Context
2010-12-31
07:31
2010-12-31 Steve Huntley <[email protected]> * vfs.tcl: Removed requirement for 8.6 for sourcing of vfslib.tcl, since that file contains 8.5-relevant utils for chan command. Vfslib.tcl includes adequate conditional checks for version-dependent commands. check-in: a86dc1c7cc user: blacksqr tags: trunk
04:56
2010-12-30 Steve Huntley <[email protected]> * library/zipvfs.tcl: Wojciech Kocjan contributed tweaks to my latest "Frankenstein" patch, which I incorporated. check-in: d499446fc6 user: blacksqr tags: trunk
2010-12-30
07:59
2010-12-30 Steve Huntley <[email protected]> * pkgIndex.tcl.in, vfs.tcl: Switched "package require Tcl 8.4" statement to vfs.tcl to conform with accepted practice. check-in: 58acd21b8e user: blacksqr tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to ChangeLog.





1
2
3
4
5
6
7





2010-12-30  Steve Huntley  <[email protected]>

	* pkgIndex.tcl.in, vfs.tcl: Switched "package require Tcl 8.4" statement
	to vfs.tcl to conform with accepted practice.

2010-12-30  Steve Huntley  <[email protected]>

>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
2010-12-30  Steve Huntley  <[email protected]>

	* library/zipvfs.tcl: Wojciech Kocjan contributed tweaks to my latest
	"Frankenstein" patch, which I incorporated.

2010-12-30  Steve Huntley  <[email protected]>

	* pkgIndex.tcl.in, vfs.tcl: Switched "package require Tcl 8.4" statement
	to vfs.tcl to conform with accepted practice.

2010-12-30  Steve Huntley  <[email protected]>

Changes to library/zipvfs.tcl.
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
		    set nfd [::zip::rawstream $zipfd $sb(size)]
		}
		return [list $nfd]
	    }  else  {
		set nfd [vfs::memchan]
		fconfigure $nfd -translation binary

		zip::Data $zipfd sb data

		puts -nonewline $nfd $data

		fconfigure $nfd -translation auto
		seek $nfd 0
		return [list $nfd]
	    }







|







150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
		    set nfd [::zip::rawstream $zipfd $sb(size)]
		}
		return [list $nfd]
	    }  else  {
		set nfd [vfs::memchan]
		fconfigure $nfd -translation binary

		set data [zip::Data $zipfd sb 0]

		puts -nonewline $nfd $data

		fconfigure $nfd -translation auto
		seek $nfd 0
		return [list $nfd]
	    }
450
451
452
453
454
455
456

457
458
459
460

461
462
463
464
465
466
467
468
469
470
	    incr at 512 ; # to ensure that the pattern we look for is not split at
	    #           ; # a buffer boundary, nor the header itself
	} else {
	    break
	}
    }


    set hdr [string range $hdr [expr $pos + 4] [expr $pos + 21]]
 
     set seekstart [expr {wide([tell $fd]) + $pos - 512}]
     if {$seekstart < 0} {

         set seekstart 0
     }
     set pos [expr {$seekstart + $pos}]

    binary scan $hdr ssssiis \
	cb(ndisk) cb(cdisk) \
	cb(nitems) cb(ntotal) \
	cb(csize) cb(coff) \
	cb(comment)








>
|

|
|
>
|

<







450
451
452
453
454
455
456
457
458
459
460
461
462
463
464

465
466
467
468
469
470
471
	    incr at 512 ; # to ensure that the pattern we look for is not split at
	    #           ; # a buffer boundary, nor the header itself
	} else {
	    break
	}
    }

     set hdrlen [string length $hdr]
     set hdr [string range $hdr [expr $pos + 4] [expr $pos + 21]]
 
     set pos [expr {wide([tell $fd]) + $pos - $hdrlen}]
 
     if {$pos < 0} {
         set pos 0
     }


    binary scan $hdr ssssiis \
	cb(ndisk) cb(cdisk) \
	cb(nitems) cb(ntotal) \
	cb(csize) cb(coff) \
	cb(comment)