]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/compression/lzw/lzw.factor
factor: trim using lists
[factor.git] / basis / compression / lzw / lzw.factor
old mode 100755 (executable)
new mode 100644 (file)
index 248700b..01ad507
@@ -1,7 +1,7 @@
 ! Copyright (C) 2009 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors combinators io kernel math math.order
-namespaces sequences vectors ;
+USING: accessors combinators kernel math math.order
+sequences vectors ;
 QUALIFIED-WITH: bitstreams bs
 IN: compression.lzw
 
@@ -20,7 +20,7 @@ TUPLE: tiff-lzw < lzw ;
 TUPLE: gif-lzw < lzw ;
 
 : initial-uncompress-table ( size -- seq )
-    iota [ 1vector ] V{ } map-as ;
+    <iota> [ 1vector ] V{ } map-as ;
 
 : reset-lzw-uncompress ( lzw -- lzw )
     dup end-of-information-code>> 1 + initial-uncompress-table >>table
@@ -38,8 +38,6 @@ ERROR: code-size-zero ;
         BV{ } clone >>output
         reset-lzw-uncompress ;
 
-ERROR: not-in-table value ;
-
 : lookup-old-code ( lzw -- vector )
     [ old-code>> ] [ table>> ] bi nth ;
 
@@ -83,8 +81,8 @@ M: gif-lzw increment-code-size [ 1 + 12 min ] change-code-size ;
 DEFER: handle-clear-code
 : lzw-process-next-code ( lzw quot: ( lzw code -- ) -- )
     [ lzw-read ] dip {
-        { [ 3dup drop end-of-information? ] [ 3drop ] }
-        { [ 3dup drop clear-code? ] [ 2drop handle-clear-code ] }
+        { [ 2over end-of-information? ] [ 3drop ] }
+        { [ 2over clear-code? ] [ 2drop handle-clear-code ] }
         [ call( lzw code -- ) ]
     } cond ; inline