Overview
Comment: | Fix seek operations with native zlib support. Without this fix creating images from gif files inside a starkit would frequently fail with an error message of: couldn't read GIF header from file XXX. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
95d3afb4e9045cd508af705836450ccf |
User & Date: | sbron on 2011-07-16 13:59:52 |
Other Links: | manifest | tags |
Context
2011-07-17
| ||
19:56 | Add a test for the zip seek bugfix (95d3afb4e9) check-in: 0ebd562749 user: sbron tags: trunk | |
2011-07-16
| ||
13:59 | Fix seek operations with native zlib support. Without this fix creating images from gif files inside a starkit would frequently fail with an error message of: couldn't read GIF header from file XXX. check-in: 95d3afb4e9 user: sbron tags: trunk | |
2011-07-07
| ||
17:21 | Updated to not switch back to dynamic linking if static linking has been requested check-in: cb7271fcc4 user: rkeene tags: trunk | |
Changes
Modified tclvfs/patches/8.6/tclvfs-20080503-supportnativezlib.diff from [92fbee3f6e] to [7076e29d82].
|
| | | | > > > > > > > > > > > > > > > | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | diff -uNr tclvfs-20080503.orig/library/vfslib.tcl tclvfs-20080503-3rsk/library/vfslib.tcl --- tclvfs-20080503.orig/library/vfslib.tcl 2011-07-16 15:31:29.000000000 +0200 +++ tclvfs-20080503-3rsk/library/vfslib.tcl 2011-07-16 15:32:28.000000000 +0200 @@ -5,6 +5,14 @@ namespace eval ::vfs { variable zseq 0 ;# used to generate temp zstream cmd names + variable zlibPkg 0 ;# Use Tcl 8.6+ zlib command, or zlib package +} + + +# Work with the Tcl 8.6+ built-in zlib command or the zlib package, if available +catch { + package present zlib + set ::vfs::zlibPkg 1 } # for backwards compatibility @@ -94,8 +102,12 @@ } # to seek back, rewind, i.e. start from scratch if {$a1 < $pos} { - rename $zcmd "" - zlib $imode $zcmd + if {$::vfs::zlibPkg} { + rename $zcmd "" + zlib $imode $zcmd + } else { + $zcmd reset + } seek $ifd 0 set pos 0 } @@ -110,19 +122,26 @@ return $pos } read { + if {$::vfs::zlibPkg} { + set zputcmd fill + set zgetcmd drain + } else { |
︙ | ︙ | |||
43 44 45 46 47 48 49 | - set data [$zcmd drain $n] + $zcmd $zputcmd $data + } + set data [$zcmd $zgetcmd $n] #puts stderr " read [string length $data]" if {$data eq ""} break append r $data | | | 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | - set data [$zcmd drain $n] + $zcmd $zputcmd $data + } + set data [$zcmd $zgetcmd $n] #puts stderr " read [string length $data]" if {$data eq ""} break append r $data @@ -141,8 +160,12 @@ } proc vfs::zstream {mode ifd clen ilen} { - set cname _zstream_[incr ::vfs::zseq] - zlib s$mode $cname + if {$::vfs::zlibPkg} { + set cname _zstream_[incr ::vfs::zseq] |
︙ | ︙ |