TclVFS

Check-in [d499446fc6]
Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

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 | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: d499446fc641c844c22deef4d13462365f02a4cd
User & Date: blacksqr 2010-12-31 04:56:44
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
Hide Diffs Unified Diffs 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  <stephen.hu[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
...
450
451
452
453
454
455
456

457
458
459
460
461
462

463

464
465
466
467
468
469
470
		    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]
	    }
................................................................................
	    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)







|







 







>
|

|
<
<
|
>
|
>







150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
...
450
451
452
453
454
455
456
457
458
459
460


461
462
463
464
465
466
467
468
469
470
471
		    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]
	    }
................................................................................
	    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)