Michael,
First: Oh, my! I've been reading about a missing cpio mode in the emacs TODO file for years, I'd sort of assumed that there was little work on it. (I do admit that when I'd last joined this list, I did receive a few attempts to start such a project.)
Your work sounds similar to mine. Indeed, my goal is to write something like a dired front end to all the cpio formats, with relatively easy extensibility to others. This should include editing, adding and deleting archive members. That's turned out to be a little more than I was expecting. Once I started looking more closely, dired is much larger that I was expecting.
FYI The design is coarsely given in this diagram.
;; +----------------------+ +-------------+ +-------------+
;; | Format specific code | | | | |
;; | +---------------+ | | | | |
;; | | cpio-bin | | | | | |
;; | | +--------------+ | | CPIO | | dired-like |
;; | +-|cpio-crc | |<->| Logic |<->| UI |
;; | | +-------------+ | | | | |
;; | +-| hpbin | | | | | |
;; | | +------------+ | | | | |
;; | +-| ··· | | | | | |
;; | +------------+ | | | | |
;; +----------------------+ +-------------+ +-------------+
;; Λ Λ Λ
;; | | |
;; V V V
;; +----------------------------------------------------------+
;; | generic code |
;; | +------------+ +--------------+ +-----+ |
;; | | cpio-modes | | cpio-generic | | ··· | |
;; | +------------+ +--------------+ +-----+ |
;; +----------------------------------------------------------+
Could you point me to your code? Thanks.