Posted to tcl by patthoyts at Tue Mar 10 13:00:19 GMT 2009view raw
- Avoid using the core 8.6 zlib code for vfs::zstream until we can seek it.
 - (used by mk4vfs)
 -  
 - Index: library/vfslib.tcl
 - ===================================================================
 - RCS file: /cvsroot/tclvfs/tclvfs/library/vfslib.tcl,v
 - retrieving revision 1.10
 - diff -u -r1.10 vfslib.tcl
 - --- library/vfslib.tcl	22 Jan 2009 15:10:10 -0000	1.10
 - +++ library/vfslib.tcl	19 Feb 2009 20:05:52 -0000
 - @@ -34,7 +34,7 @@
 -  # Also provide an abstract zlib streaming channel transform using the core
 -  # zlib command (8.6) or the tclkit zlib package.
 -  #
 - -if {[package vsatisfies [package provide Tcl] 8.6]} {
 - +if {[package vsatisfies [package provide Tcl] 8.9]} {
 -  
 -      proc vfs::zstream {mode ifd clen ilen} {
 -          return [zlib push $mode $ifd]
 - @@ -251,32 +251,24 @@
 -  
 -      variable ::vfs::zseq 0	;# used to generate temp zstream cmd names
 -  
 - -    # vfs::zstream --
 - -    #	wrapper to manage a stacked zlib channel. If we have the core
 - -    #	zlib implementation then make use of that. Otherwise we can use
 - -    #	rechan and the tclkit zlib package to do the same thing.
 - +    # vfs::zstream -- 
 - +    #
 - +    #  Create a read-only seekable compressed channel using rechan and
 - +    #  the streaming mode of zlib.
 -      #
 -      #	  mode - compress or decompress
 -      #	  ifd  - input channel (should be binary)
 -      #	  clen - size of compressed data in bytes
 -      #	  ilen - size of decompressed data in bytes
 - -    # Result:
 - -    #	A stacked channel then handles compression for us.
 -      #
 - -    if {[package vsatisfies [package provide Tcl] 8.6]} {
 - -        proc vfs::zstream {mode ifd clen ilen} {
 - -            return [zlib push $mode $ifd]
 - -        }
 - -    } else {
 - -        proc vfs::zstream {mode ifd clen ilen} {
 - -            set cname _zstream_[incr ::vfs::zseq]
 - -            zlib s$mode $cname
 - -            fconfigure $ifd -translation binary
 - -            set cmd [list ::vfs::zstream_handler $cname $ifd $clen $ilen s$mode]
 - -            set fd [rechan $cmd 2]
 - -            set ::vfs::_zstream_pos($fd) 0
 - -            return $fd
 - -        }
 - +    proc vfs::zstream {mode ifd clen ilen} {
 - +        set cname _zstream_[incr ::vfs::zseq]
 - +        zlib s$mode $cname
 - +        fconfigure $ifd -translation binary
 - +        set cmd [list ::vfs::zstream_handler $cname $ifd $clen $ilen s$mode]
 - +        set fd [rechan $cmd 2]
 - +        set ::vfs::_zstream_pos($fd) 0
 - +        return $fd
 -      }
 -  }