Overview
| Comment: | Reduced change in Native ZLIB support patch | 
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive | 
| Timelines: | family | ancestors | descendants | both | trunk | 
| Files: | files | file ages | folders | 
| SHA1: | f043a10e6071150d16125660e98a38ba | 
| User & Date: | rkeene on 2010-09-26 04:48:00 | 
| Other Links: | manifest | tags | 
Context
| 2010-09-26 | ||
| 04:48 | Added scripts to do nightly tests on Subversion and publish results check-in: 3df6039232 user: rkeene tags: trunk | |
| 04:48 | Reduced change in Native ZLIB support patch check-in: f043a10e60 user: rkeene tags: trunk | |
| 04:47 | Updated to mark kits which have been cross-compiled in yellow check-in: 2fb02e4e85 user: rkeene tags: trunk | |
Changes
Modified tclvfs/patches/8.6/tclvfs-20080503-supportnativezlib.diff from [60b79c951c] to [991c9c6c1f].
| 
 | 
 | | | | | > | < | < < < < < < < < < < | < < | | | < < < < < | < | < < | | | | | > > | | | | | > > > | | > | | | < < < < < | < < < < < < < > | < < < > < | 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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | 
Binary files tclvfs-20080503.orig/library/.vfslib.tcl.swp and tclvfs-20080503-2rsk/library/.vfslib.tcl.swp differ
diff -uNr tclvfs-20080503.orig/library/vfslib.tcl tclvfs-20080503-2rsk/library/vfslib.tcl
--- tclvfs-20080503.orig/library/vfslib.tcl	2006-09-14 16:39:57.000000000 -0500
+++ tclvfs-20080503-2rsk/library/vfslib.tcl	2010-09-17 16:03:49.000000000 -0500
@@ -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
@@ -110,19 +118,26 @@
 		return $pos
 	    }
 	    read {
+                if {$::vfs::zlibPkg} {
+                   set zputcmd fill
+                   set zgetcmd drain
+                } else {
+                   set zputcmd put
+                   set zgetcmd get
+                }
 		set r ""
 		set n $a1
 		#puts stderr " want $n z $zcmd pos $pos ilen $ilen"
 		if {$n + $pos > $ilen} { set n [expr {$ilen - $pos}] }
 		while {$n > 0} {
-		    if {[$zcmd fill] == 0} {
+                    if {![eof $ifd]} {
 		        set c [expr {$clen - [tell $ifd]}]
 			if {$c > 4096} { set c 4096 }
 			set data [read $ifd $c]
 			#puts "filled $c [string length $data]"
-			$zcmd fill $data
-		    }
-		    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 +156,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]
+            zlib s$mode $cname
+        } else {
+            set cname [zlib stream $mode]
+        }
 	set cmd [list ::vfs::zstream_handler $cname $ifd $clen $ilen s$mode]
 	set fd [rechan $cmd 2]
 	set ::vfs::_zstream_pos($fd) 0
 |