anchor.diff:               (let ((global-header (read-data-block archive (size entry)
                                                      #'round-up-to-tar-block)))
                  (read-entry-from-archive archive)))
  -            ((= (typeflag entry) +gnutar-sparse+)
  -             (error "Don't understand GNU tar sparse entry"))
               (t
  -             (error "Can't understand typeflag: ~A" (typeflag entry))))))))
  +             (error 'unhandled-read-header-error
  +                    :typeflag (typeflag entry))))))))
               
   ;;; FIXME: must add permissions handling, mtime, etc.  maybe those should
   ;;; be specified by flags or somesuch?
  
positive.code:              (format stream "Invalid tar header checksum ~D (wanted ~D)"
                       (provided condition) (computed condition))))
    (:documentation "Signaled when the checksum in a tar header is invalid."))
  
  ;;; Groveling through tar headers
  
negative.code:             ((or (= (typeflag entry) +tar-regular-file+)
                   (= (typeflag entry) +tar-directory-file+))
               entry)
              ((= (typeflag entry) +posix-global-header+)
               ;; FIXME: We should make the information from this
               ;; available to the user.  At the moment, however, most
  