anchor.diff:                     compression-size compression-threshold
                      last-code pos)
                (type bitstream bitstream))
  -    (fill entries -1)
  +    (fill entries -1 :start clear-code)
       (fill preds -1)
       (dotimes (i clear-code)
         (setf (aref entries i) i))
       (labels ((reset-table ()
  -               (fill preds -1)
  -               (fill entries -1 :start clear-code)
  -               (setf last-code -1
  -                     next-entry-index (+ clear-code 2)
  -                     compression-size (1+ code-size)
  -                     compression-threshold (* clear-code 2)))
  +	       (when (/= last-code -1)
  +		 (fill preds -1)
  +		 (fill entries -1 :start clear-code)
  +		 (setf last-code -1
  +		       next-entry-index (+ clear-code 2)
  +		       compression-size (1+ code-size)
  +		       compression-threshold (* clear-code 2))))
                (root-value (code)
                  (loop
                   (let ((pred (aref preds code)))
  
positive.code:                     (return (aref entries code)))
                    (setf code pred))))
               (increase-compression-size ()
                 (setf compression-size (min 12 (+ compression-size 1))
                       compression-threshold (* compression-threshold 2)))
               (add-entry (entry pred)
                 (when (>= pred next-entry-index)
                   (error 'lzw-error
                          :description "Corrupt data in LZW stream"))
  
negative.code: ;;;; $Id: lzw.lisp,v 1.11 2007/01/03 22:01:10 xach Exp $
  
  (in-package #:skippy)
  
  (defconstant +maximum-code-bits+ 12
    "The maximum bits per code, as defined by the specification.")
  
  (defclass compression-context ()
    ((table
  