emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/cpio-mode 86b255b 46/61: Version 0.09 -- a little polis


From: Stefan Monnier
Subject: [elpa] externals/cpio-mode 86b255b 46/61: Version 0.09 -- a little polish
Date: Fri, 11 Jan 2019 15:25:32 -0500 (EST)

branch: externals/cpio-mode
commit 86b255bc90dae3028d98fc28a042f571a0849ffa
Author: dlewan <address@hidden>
Commit: GitHub <address@hidden>

    Version 0.09 -- a little polish
    
    This version of cpio-mode has [relatively] clean byte compilation (try 
"make elc"), instructions for automatic invocation, and lots of minor bug fixes.
---
 Makefile.in                 |  28 +-
 NEWS                        |  16 +-
 QUESTIONS                   |   7 +-
 README                      |  40 +-
 cab-test.el                 | 296 ++++++++++++--
 configure.ac                |   4 +-
 cpio-affiliated-buffers.el  | 178 +++++++--
 cpio-bin.el                 |  80 ++--
 cpio-crc.el                 |  51 ++-
 cpio-dired-crc-test.el      | 185 +++++++--
 cpio-dired-odc-test.el      | 167 ++++++--
 cpio-dired-test.el          | 921 +++++++++++++++++++++++++-------------------
 cpio-dired.el               | 261 ++++++++-----
 cpio-entry-contents-mode.el |  29 +-
 cpio-generic-tests.el       |  86 +----
 cpio-generic.el             |  64 +--
 cpio-modes-test.el          |  95 ++++-
 cpio-modes.el               |  23 +-
 cpio-newc.el                | 157 ++++----
 cpio-odc.el                 | 106 +++--
 cpio.el                     | 265 +++++++++----
 21 files changed, 2049 insertions(+), 1010 deletions(-)

diff --git a/Makefile.in b/Makefile.in
index 7503646..6bd5f4f 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,5 +1,5 @@
 # -*- mode: makefile; coding: utf-8 -*-
-#      $Id: Makefile.in,v 1.5 2018/06/03 14:01:54 doug Exp $   
+#      $Id: Makefile.in,v 1.6 2018/06/09 16:14:35 doug Exp $   
 
 # 
 # Copyright © 2013, 2014, 2015, 2016, 2017, 2018 
@@ -47,6 +47,8 @@ APP_FILES     =       cpio-bin.el                     \
                        cpio-ustar.el                   \
                        cpio-wanted.el
 
+ELC_FILES      =       ${EL_FILES:.el=.elc}
+
 TEST_FILES     =       cab-test.el                     \
                        cpio-dired-crc-test.el          \
                        cpio-dired-odc-test.el          \
@@ -54,6 +56,7 @@ TEST_FILES    =       cab-test.el                     \
                        cpio-modes-test.el
 
 
+
 SUPPORT_FILES  =       cpio-affiliated-buffers.el      \
                        cpio-generic.el                 \
                        cpio-modes.el
@@ -115,6 +118,24 @@ INSTALL    =       @INSTALL@
 CC     =       @CC@
 CFLAGS =       
 
+.el.elc:
+       emacs -Q -batch ${BYTE_COMPILE_FLAGS}                   \
+               -l bytecomp -f byte-compile-refresh-preloaded   \
+               -l cpio.el -f batch-byte-compile ${<} ;
+
+
+################################
+# Taken from emacs' lisp/Makefile.in
+BYTE_COMPILE_EXTRA_FLAGS =
+BIG_STACK_DEPTH = 2200
+BIG_STACK_OPTS = --eval "(setq max-lisp-eval-depth $(BIG_STACK_DEPTH))"
+
+# Set load-prefer-newer for the benefit of the non-bootstrappers.
+BYTE_COMPILE_FLAGS = $(BIG_STACK_OPTS) \
+  --eval '(setq load-prefer-newer t)' $(BYTE_COMPILE_EXTRA_FLAGS)
+# EO stuff from emacs' lisp/Makefile.in
+################################
+
 
 ################################################################
 
@@ -149,7 +170,10 @@ version:
 
 all:   default
 
-.PHONY:        check_gnu
+.PHONY:        check_gnu elc
+
+elc:   ${ELC_FILES}
+
 check_gnu:
        @${MAKE} --version >/dev/null 2>&1 || ( echo "This makefile requires 
GNU Make." && exit 1 )
 
diff --git a/NEWS b/NEWS
index 504c20a..68e494d 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,19 @@
 # -*- outline -*-
-#      $Id: NEWS,v 1.7 2018/06/09 06:16:41 doug Exp $  
+#      $Id: NEWS,v 1.10 2018/06/16 18:03:21 doug Exp $ 
+
+* Version 0.09
+** There's now a find-file-hook
+   and documentation on how to use/invoke cpio-mode.
+** Changing owner or group no longer removes marks
+   on the entries on which the change is being performed.
+** cpio-affiliated-buffers.el has had somae fixes.
+   There were lots of issues around the kill-buffer-hook.
+   It seems correct now.
+   (Of course, bug reports are welcome.)
+   Affiliated buffer tests have been fleshed out some.
+** Byte compilation is cleaner.
+   Not entirely clean, but cleaner.
+** Some tests have had minor fixes.
 
 * Version 0.08
 ** Binary format support.
diff --git a/QUESTIONS b/QUESTIONS
index 51359e5..3c020ea 100644
--- a/QUESTIONS
+++ b/QUESTIONS
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-#      $Id: QUESTIONS,v 1.3 2018/06/09 05:48:04 doug Exp $     
+#      $Id: QUESTIONS,v 1.4 2018/06/16 02:18:00 doug Exp $     
 
 cpio(1) related questions:
 • cpio(1) accepts block size on its command line.
@@ -37,4 +37,7 @@ Dired related questions:
   M-x cpio-dired-mark-entries-containing-regexp
 • Should renaming marked files unmark them?
   For example, moving them to a directory.
-  They currently remain marked.
\ No newline at end of file
+  They currently remain marked.
+• How should I handle undo?
+  Can you undo an entry's deletion?
+  chown, etc.?
diff --git a/README b/README
index 2582b34..b85833c 100644
--- a/README
+++ b/README
@@ -1,5 +1,5 @@
 # -*- mode: org; encoding: utf-8 -*-
-#      $Id: README,v 1.5 2018/06/04 18:50:14 doug Exp $        
+#      $Id: README,v 1.7 2018/06/16 02:08:25 doug Exp $        
 
 
 * Intent
@@ -20,6 +20,14 @@ That includes things like
 • Adding/deleting entries
 • Editing entries
 • Changing an entry's attributes (chown, chgrp, chmod, etc.).
+
+Note that, if you can write the archive,
+then all those operations will succeed in the archive.
+And they will be carried in the saved archive.
+They may, however, not apply to files extracted from the archive
+if you do not have sufficient permissions to perform those operations
+on the corresponding files.
+chown(1), for example, may require that you be root.
 ________________
 ¹Yes, this is a terrible requirement.
  However, it does allow for incremental development relatively easily.
@@ -30,8 +38,8 @@ To add a new archive type a devloper should be able to do so
 merely by being able to parse an entry and
 write a parsed entry back to a file.
  
-Right now (2018 May 21), the cpio-mode package supports the above
-for the newc, crc and odc formats of cpio archives.
+Right now (2018 Jun 09), the cpio-mode package supports the above
+for the bin, crc, newc and odc formats of cpio archives.²
 However, the internal structure of cpio-mode implements
 all of the manipulation code in terms of parsed headers
 (which look much like inodes), so adding new formats should be
@@ -48,18 +56,35 @@ then you can simply add the extensions to the attributes
 of the entries in the catalog.
 This will likely require updating the various build-catalog functions
 and the make-header-string functions.
+________________
+² For archives without device entries, this means
+that hpbin and hpodc are also supported.
 
 * Other code
 
 Some more generic code is delivered with cpio-mode.
 
-* cpio-generic.el
+** cpio-generic.el
+
+This file contains truly generic lisp code.
+For the most part, it employs the prefix cg-
+to keep its names distinct.
+Some names begin cpio-.
+
+** cpio-modes.el
 
-* cpio-modes.el
+This file contains generic code pertaining to file modes,
+both numeric and symbolic.
 
-* cpio-affiliated-buffers.el
+Constants corresponding to mode bits are named with lispish versions
+of the names given in /usr/include/linux/stat.h.
+The same goes for the predicates about a file's (entry's) type.
 
-There's also a package of Affiliated Buffers included
+Otherwise, the prefix cpio- is used.
+
+** cpio-affiliated-buffers.el
+
+This file contains a package called Affiliated Buffers
 that should be independent.
 (And one day it will be published that way.)
 
@@ -133,6 +158,7 @@ yes, there's duplicated code.
 Some of this should be cleaned up once development seems stable.
 
 * Cruft
+
 There's a fair amount of cruft in the code at the moment.
 If I've done my job correctly, it is at least separate
 from the main body of code (like on a different page).
diff --git a/cab-test.el b/cab-test.el
index 452cedc..e25f0be 100644
--- a/cab-test.el
+++ b/cab-test.el
@@ -1,6 +1,6 @@
 ;; -*- coding: utf-8 -*-
 ;;; cab-text.el --- brief description
-;      $Id: cab-test.el,v 1.3 2018/06/03 14:01:54 doug Exp $   
+;      $Id: cab-test.el,v 1.5 2018/06/16 18:01:35 doug Exp $   
 
 ;; COPYRIGHT
 
@@ -52,8 +52,8 @@
 (ert-deftest cab-test-registry-1 ()
   "Tests a simple (cab-register child parent)."
   (let ((fname "cab-test-registry-1")
-       (parent (get-buffer-create "p"))
-       (child (get-buffer-create "c")))
+       (parent (find-file-noselect "p"))
+       (child (find-file-noselect "c")))
     (message "%s(): Entering." fname)
     (message "%s(): 58" fname)
     (if (buffer-live-p parent)
@@ -89,18 +89,14 @@
                   (equal (with-current-buffer child
                            *cab-subordinates*)
                          ())))
-    (should (progn (message "%s(): 92" fname)
-                  (equal (with-current-buffer child
-                           *cab-parent*)
-                         parent)))
     (message "%s(): Leaving." fname)))
 
 (ert-deftest cab-test-registry-2 ()
   "Tests registering two buffers under the same parent."
   (let ((fname "cab-test-registry-2")
-       (parent (get-buffer-create "p2"))
-       (buffer-1 (get-buffer-create "b21"))
-       (buffer-2 (get-buffer-create "b22")))
+       (parent (find-file-noselect "p2"))
+       (buffer-1 (find-file-noselect "b21"))
+       (buffer-2 (find-file-noselect "b22")))
     (message "%s(): Entering." fname)
 
     (cab-register buffer-1 parent)
@@ -137,14 +133,14 @@
 (ert-deftest cab-test-registry-3 ()
   "Tests registering a 3 level hierarchy."
   (let ((fname "cab-test-registery-3")
-       (grandparent (get-buffer-create "gp3"))
-       (parent-1       (get-buffer-create "p31"))
-       (parent-2       (get-buffer-create "p32"))
-       (grandchild-311 (get-buffer-create "b311"))
-       (grandchild-312 (get-buffer-create "b312"))
-       (grandchild-313 (get-buffer-create "b313"))
-       (grandchild-321 (get-buffer-create "b321"))
-       (grandchild-322 (get-buffer-create "b322")))
+       (grandparent (find-file-noselect "gp3"))
+       (parent-1       (find-file-noselect "p31"))
+       (parent-2       (find-file-noselect "p32"))
+       (grandchild-311 (find-file-noselect "b311"))
+       (grandchild-312 (find-file-noselect "b312"))
+       (grandchild-313 (find-file-noselect "b313"))
+       (grandchild-321 (find-file-noselect "b321"))
+       (grandchild-322 (find-file-noselect "b322")))
     (message "%s(): Entering." fname)
     
     (cab-register parent-1       grandparent)
@@ -210,9 +206,10 @@
     (cab-register buffer parent)
     (cab-deregister parent)
     (should (progn (message "%s(): 211" fname)
-                  (not (buffer-live-p parent))))
+                  (buffer-live-p parent)))
     (should (progn (message "%s(): 213" fname)
-                  (not (buffer-live-p buffer))))
+                  (cab-registered-p buffer parent)))
+
     (message "%s(): Leaving." fname)))
 
 (ert-deftest cab-test-deregister-2 ()
@@ -244,10 +241,15 @@
     (setq buffer-2 (find-file-noselect "b22"))
     (cab-register buffer-1 parent)
     (cab-register buffer-2 parent)
-    (cab-deregister parent)
+
+    (should (progn (message "%s(): You can't deregister the root." fname)
+                  (null (cab-deregister parent))))
 
     (should (progn (message "%s(): 248" fname)
-                  (not (buffer-live-p parent))))
+                  (buffer-live-p parent)))
+
+    (should (cab-registered-p buffer-1 parent))
+    (should (cab-registered-p buffer-2 parent))
 
     (message "%s(): Leaving." fname)))
 
@@ -286,6 +288,14 @@
                   (equal (with-current-buffer parent-2
                            *cab-parent*)
                          grandparent)))
+    (mapc (lambda (bi)
+           (let ((vname (cdr bi))
+                 (b (car bi)))
+             (should (progn (message "%s(): Checking that [[%s]] is still 
live. (294)" fname vname)
+                            (buffer-live-p b)))))
+         (list (cons grandchild-321 "grandchild-321")
+               (cons grandchild-321 "grandchild-321")
+               ))
     (should (progn (message "%s(): 288" fname)
                   (equal (with-current-buffer parent-2
                            (length *cab-subordinates*))
@@ -294,14 +304,25 @@
                   (member grandchild-322 (with-current-buffer parent-2
                                            *cab-subordinates*))))
 
-    (cab-deregister grandparent)
+    ;; (should (null (cab-deregister grandparent)))
+    (kill-buffer grandparent)
 
-    (should (progn (message "%s(): 298" fname)
-                  (not (buffer-live-p grandparent))))
     (should (progn (message "%s(): 300" fname)
-                  (not (buffer-live-p parent-1))))
+                  (null (buffer-live-p parent-1))))
     (should (progn (message "%s(): 302" fname)
-                  (not (buffer-live-p parent-2))))
+                  (null (buffer-live-p parent-2))))
+    (mapc (lambda (bi)
+           (let ((vname (cdr bi))
+                 (b (car bi)))
+             (should (progn (message "%s(): Checking if [[%s]] is no longer 
live. (321)" fname vname)
+                            (not (buffer-live-p b))))))
+         (list (cons parent-1 "parent-1")
+               (cons parent-2 "parent-2")
+               (cons grandchild-311 "grandchild-311")
+               (cons grandchild-312 "grandchild-312")
+               (cons grandchild-313 "grandchild-313")
+               (cons grandchild-321 "grandchild-321")
+               (cons grandchild-322 "grandchild-322")))
 
     (message "%s(): Leaving." fname)))
 
@@ -551,8 +572,225 @@
             (should (progn (message "%s(): 557" fname)
                            (not (buffer-live-p grandchild-321))))
             (should (progn (message "%s(): 559" fname)
-                           (not (buffer-live-p grandchild-322))))))
-    (message "%s(): Leaving." fname)))
+                           (not (buffer-live-p grandchild-322)))))
+      ;; This bothers the byte compiler for some reason.
+      (message "%s(): Leaving." fname))))
+
+(ert-deftest cab-test-register-negatively-0 ()
+  "Test of the things that (cab-register) should not do.
+Included are results from using (cab-registered-p)."
+  (let* ((fname "cab-test-register-negatively-0")
+        (root-buffer (find-file-noselect "root"))
+        (rand)
+        (unaffiliated-buffers)
+        (affiliated-buffers)
+        (i)
+       )
+
+    (setq i 0)
+    (setq rand (+ 5 (mod (random) 20)))
+    (while (< i rand)
+      (push (find-file-noselect (format "uab%d" i)) unaffiliated-buffers)
+      (setq i (1+ i)))
+
+    (setq i 0)
+    (setq rand (+ 5 (mod (random) 20)))
+    (while (< i rand)
+      (push (find-file-noselect (format "ab%d" i)) affiliated-buffers)
+      (setq i (1+ i)))
+    
+    (mapc (lambda (b)
+           (should (progn (message "%s(): registering [[%s]] with [[%s]]." 
fname b root-buffer)
+                          (cab-register b root-buffer))))
+         affiliated-buffers)
+    (mapc (lambda (b)
+           (should (progn (message "%s(): [[%s]] should be registered to 
[[%s]]." fname b root-buffer)
+                          (cab-registered-p b root-buffer))))
+         affiliated-buffers)
+    (mapc (lambda (b)
+           (should (progn (message "%s(): [[%s]] should NOT be registered to 
[[%s]]." fname b root-buffer)
+                          (not (cab-registered-p b root-buffer)))))
+         unaffiliated-buffers)
+
+    (kill-buffer root-buffer)
+
+    (mapc (lambda (b)
+           (should (progn (message "%s(): [[%s]] should be killed [[%s]]." 
fname b root-buffer)
+                          (not (buffer-live-p b)))))
+         affiliated-buffers)
+    (mapc (lambda (b)
+           (should (progn (message "%s(): [[%s]] should still be live." fname 
b)
+                          (buffer-live-p b))))
+         unaffiliated-buffers)
+    ))
+
+(ert-deftest cab-test-register-negatively-1 ()
+  "Test of the things that (cab-register) should not do with two roots.
+Included are results from using (cab-registered-p)."
+  (let* ((fname "cab-test-register-negatively-1")
+        (root-buffer-0 (find-file-noselect "root0"))
+        (root-buffer-1 (find-file-noselect "root1"))
+        (rand)
+        (unaffiliated-buffers)
+        (affiliated-buffers-0)
+        (affiliated-buffers-1)
+        (i)
+       )
+
+    (setq i 0)
+    (setq rand (+ 5 (mod (random) 20)))
+    (while (< i rand)
+      (push (find-file-noselect (format "uab%d" i)) unaffiliated-buffers)
+      (setq i (1+ i)))
+
+    (setq i 0)
+    (setq rand (+ 5 (mod (random) 20)))
+    (while (< i rand)
+      (push (find-file-noselect (format "ab%d-0" i)) affiliated-buffers-0)
+      (setq i (1+ i)))
+    (setq i 0)
+    (setq rand (+ 5 (mod (random) 20)))
+    (while (< i rand)
+      (push (find-file-noselect (format "ab%d-1" i)) affiliated-buffers-1)
+      (setq i (1+ i)))
+    
+    (mapc (lambda (b)
+           (should (progn (message "%s(): registering [[%s]] with [[%s]]. 
(657)" fname b root-buffer-0)
+                          (cab-register b root-buffer-0))))
+         affiliated-buffers-0)
+    (mapc (lambda (b)
+           (should (progn (message "%s(): registering [[%s]] with [[%s]]. 
(661)" fname b root-buffer-1)
+                          (cab-register b root-buffer-1))))
+         affiliated-buffers-1)
+
+    (mapc (lambda (b)
+           (should (progn (message "%s(): [[%s]] should be registered to 
[[%s]]. (666)" fname b root-buffer-0)
+                          (cab-registered-p b root-buffer-0))))
+         affiliated-buffers-0)
+    (mapc (lambda (b)
+           (should (progn (message "%s(): [[%s]] should NOT be registered to 
[[%s]]. (670)" fname b root-buffer-1)
+                          (not (cab-registered-p b root-buffer-1)))))
+         affiliated-buffers-0)
+
+    (mapc (lambda (b)
+           (should (progn (message "%s(): [[%s]] should NOT be registered to 
[[%s]]. (675)" fname b root-buffer-1)
+                          (not (cab-registered-p b root-buffer-1)))))
+         affiliated-buffers-0)
+    (mapc (lambda (b)
+           (should (progn (message "%s(): [[%s]] should NOT be registered to 
[[%s]]. (679)" fname b root-buffer-0)
+                          (not (cab-registered-p b root-buffer-0)))))
+         affiliated-buffers-1)
+
+    (mapc (lambda (rb)
+           (mapc (lambda (b)
+                   (should (progn (message "%s(): [[%s]] should NOT be 
registered to [[%s]]. (685)" fname b rb)
+                                  (not (cab-registered-p b rb)))))
+                 unaffiliated-buffers))
+           (list root-buffer-0
+                 root-buffer-1))
+
+    (kill-buffer root-buffer-0)
+
+    (mapc (lambda (b)
+           (should (progn (message "%s(): [[%s]] should be killed [[%s]]. 
(694)" fname b root-buffer-0)
+                          (not (buffer-live-p b)))))
+         affiliated-buffers-0)
+    (mapc (lambda (b)
+           (should (progn (message "%s(): [[%s]] should still be live [[%s]]. 
(698)" fname b root-buffer-1)
+                          (buffer-live-p b))))
+         affiliated-buffers-1)
+    (mapc (lambda (b)
+           (should (progn (message "%s(): [[%s]] should still be live. (702)" 
fname b)
+                          (buffer-live-p b))))
+         unaffiliated-buffers)
+
+    (kill-buffer root-buffer-1)
+
+    (mapc (lambda (b)
+           (should (progn (message "%s(): [[%s]] should be killed [[%s]]. 
(709)" fname b root-buffer-1)
+                          (not (buffer-live-p b)))))
+         affiliated-buffers-1)
+    (mapc (lambda (b)
+           (should (progn (message "%s(): [[%s]] should still be live. (713)" 
fname b)
+                          (buffer-live-p b))))
+         unaffiliated-buffers)
+    
+
+    ))
+
+(ert-deftest cab-test-register-negatively-2 ()
+  "Test of the things that (cab-register) should not do with two roots.
+Included are results from using (cab-registered-p)."
+  (let* ((fname "cab-test-register-negatively-2")
+        (root-buffer-0 (find-file-noselect "root0"))
+        (root-buffer-1 (find-file-noselect "root1"))
+        (rand)
+        (unaffiliated-buffers)
+        (affiliated-buffers-0)
+        (affiliated-buffers-1)
+        (i)
+       )
+
+    (setq i 0)
+    (setq rand (+ 5 (mod (random) 20)))
+    (while (< i rand)
+      (push (find-file-noselect (format "uab%d" i)) unaffiliated-buffers)
+      (setq i (1+ i)))
+
+    (setq i 0)
+    (setq rand (+ 5 (mod (random) 20)))
+    (while (< i rand)
+      (push (find-file-noselect (format "ab%d-0" i)) affiliated-buffers-0)
+      (setq i (1+ i)))
+    (setq i 0)
+    (setq rand (+ 5 (mod (random) 20)))
+    (while (< i rand)
+      (push (find-file-noselect (format "ab%d-1" i)) affiliated-buffers-1)
+      (setq i (1+ i)))
+    
+    (mapc (lambda (b)
+           (should (progn (message "%s(): registering [[%s]] with [[%s]]. 
(657)" fname b root-buffer-0)
+                          (cab-register b root-buffer-0))))
+         affiliated-buffers-0)
+    (mapc (lambda (b)
+           (should (progn (message "%s(): registering [[%s]] with [[%s]]. 
(661)" fname b root-buffer-1)
+                          (cab-register b root-buffer-1))))
+         affiliated-buffers-1)
+
+    (kill-buffer root-buffer-0)
+
+    (mapc (lambda (b)
+           (should (progn (message "%s(): [[%s]] should be killed." fname b)
+                          (null (buffer-live-p b)))))
+         affiliated-buffers-0)
+    (mapc (lambda (b)
+           (should (progn (message "%s(): [[%s]] is still alive." fname b)
+                          (buffer-live-p b)))
+           (should (progn (message "%s(): [[%s]] is still registered with 
[[%s]]." fname b root-buffer-1)
+                          (cab-registered-p b root-buffer-1))))
+         affiliated-buffers-1)
+    (mapc (lambda (b)
+           (should (progn (message "%s(): [[%s]] should still be alive." fname 
b)
+                          (buffer-live-p b))))
+         unaffiliated-buffers)
+
+    (kill-buffer root-buffer-1)
+
+    (mapc (lambda (b)
+           (should (progn (message "%s(): [[%s]] should be killed." fname b)
+                          (null (buffer-live-p b)))))
+         (append affiliated-buffers-0 affiliated-buffers-1))
+    (mapc (lambda (b)
+           (should (progn (message "%s(): [[%s]] should still be alive." fname 
b)
+                          (buffer-live-p b))))
+         unaffiliated-buffers)
+    ))
+
+
+;; Seed the random number generator.
+(random t)
+
+(ert "cab-")
 
 
 (provide 'cab-test)
diff --git a/configure.ac b/configure.ac
index b44a928..5803857 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-dnl    $Id: configure.ac,v 1.7 2018/06/09 05:51:07 doug Exp $  
+dnl    $Id: configure.ac,v 1.8 2018/06/16 04:21:49 doug Exp $  
 
 # 
 # Copyright © 2015, 2017, 2018 Douglas Lewan, address@hidden
@@ -20,7 +20,7 @@ dnl   $Id: configure.ac,v 1.7 2018/06/09 05:51:07 doug Exp $
 # 
 
 dnl Autoconf requirements
-AC_INIT(cpio-mode, 0.08, address@hidden)
+AC_INIT(cpio-mode, 0.09, address@hidden)
 AC_PREFIX_DEFAULT(${HOME}/local)
 dnl information on the package
 dnl checks for programs
diff --git a/cpio-affiliated-buffers.el b/cpio-affiliated-buffers.el
index eb148c8..07ef601 100644
--- a/cpio-affiliated-buffers.el
+++ b/cpio-affiliated-buffers.el
@@ -1,6 +1,6 @@
 ;; -*- coding: utf-8 -*-
 ;;; cpio-affiliated-buffers.el --- Establish and manage buffers affiliated 
with each other.
-;      $Id: cpio-affiliated-buffers.el,v 1.3 2018/06/03 14:01:55 doug Exp $    
+;      $Id: cpio-affiliated-buffers.el,v 1.6 2018/06/16 14:50:07 doug Exp $    
 
 ;; COPYRIGHT
 
@@ -34,7 +34,7 @@
 ;; The buffers affiliated with an archive's buffer are the following:
 ;; 1. The buffer holding the dired-like information.
 ;; 2. The buffers holding any entry's contents.
-;; Killing the dired-like buffer also kills the archive's buffer,
+;; Killing [deregistering] the dired-like buffer also kills the archive's 
buffer,
 ;; and killing the archive's buffer kills
 ;; all remaining affiliated buffers.
 ;; 
@@ -42,12 +42,76 @@
 
 ;;; Documentation:
 
+;; Two variables hold the relationships among buffers:
+;; • *cab-subordinates* -- a list of the buffers immediately subordinate
+;;   to the current buffer.
+;; • *cab-parent* -- a buffer, the buffer to which the current buffer is 
affiliated.
+;; Both variables are buffer local.
+;; 
+;; The existence of a subordinate buffer depends
+;; on the the existence of its parent.
+;; One consequence is that a subordinate buffer can have only one parent.
+;; Another is that killing the parent buffer kills all subordinates as well.
+;; Should a subordinate buffer have further subordinates,
+;; then they must also be killed.
+
+;; API:
+;; (cab-register (buffer parent))
+;;     Register BUFFER as a subordinate of PARENT.
+;; (cab-registered-p (buffer parent)
+;;     Return non-NIL if BUFFER is a registered subordinate of PARENT.
+;; (cab-kill-buffer-hook)
+;;     A hook for subordinate buffers that removes their registry entry 
+;;     with PARENT.
+;; (cab-deregister (&optional buffer))
+;;     Kill BUFFER and its subordinates.
+;;     Deregister BUFFER with its parent.
+;;     HEREHERE This doesn't seem to do what it's supposed to.
+;; (cab-simple-deregister (buffer))
+;;     The internal function for (cab-deregister).
+;;     Don't use this directly.
+;;     HEREHERE Again, this doesn't look like it does the right thing.
+;; (cab-clean)
+;;     A temporary function for development
+;;     that should more forcefully enforce the intent of (cab-deregister).
+
+
 ;; The following incantation should run the tests well.
 ;; emacs -quick --fullheight --debug-init --load cab-test.el --eval '(ert t)'&
 
 ;;; Code:
 
 ;;
+;; Development
+;;
+(defun cab-setup-parenthood-check ()
+  "Set up a simple situation where the parenthood check should error out."
+  (let ((b0 (find-file-noselect "b0"))
+       (b1 (find-file-noselect "b1")))
+    (cab-register b1 b0)
+    (cab-register b0 b1)))
+(defun cab-setup-parenthood-check-1 ()
+  "Set up a large situation where the parenthood check should error out."
+  (let* ((b0 (find-file-noselect "bb0"))
+        (b1 (find-file-noselect "bb1"))
+        (b2 (find-file-noselect "bb2"))
+        (b3 (find-file-noselect "bb3"))
+        (b4 (find-file-noselect "bb4"))
+        (b5 (find-file-noselect "bb5"))
+        (b6 (find-file-noselect "bb6"))
+        (b7 (find-file-noselect "bb7"))
+        (b8 (find-file-noselect "bb8"))
+        (b9 (find-file-noselect "bb9"))
+        (parent b0)
+        )
+    (mapc (lambda (b)
+           (cab-register b parent)
+           (setq parent b))
+         (list b1 b2 b3 b4 b5 b6 b7 b8 b9))
+    (cab-register b0 b9)))
+
+
+;;
 ;; Generic functions
 ;; 
 
@@ -57,6 +121,7 @@
 ;;
 ;; Dependencies
 ;; 
+(require 'cl)
 
 
 ;; 
@@ -73,7 +138,10 @@
 ;; Library
 ;; 
 (defun cab-register (buffer parent)
-  "Register the given BUFFER as an affiliate of the PARENT buffer."
+  "Register the given BUFFER as an affiliate of the PARENT buffer.
+If BUFFER is already an affiliate of PARENT, then succeed quietly.
+Return non-NIL on success.
+Return NIL if buffer is already affiliated to another parent."
   (let ((fname "cab-register"))
     (if (not (bufferp buffer))
        (error "%s(): proposed buffer [[%s]] is not a buffer." fname buffer))
@@ -82,38 +150,82 @@
     (if (equal buffer parent)
        (error "%s(): You can't affiliate a buffer [[%s]] with itself [[%s]]." 
fname buffer parent))
 
-    (unless (cab-registered-p buffer parent)
-      (with-current-buffer parent
-       (push buffer *cab-subordinates*))
-      (add-hook 'kill-buffer-hook 'cab-kill-buffer-hook))
-
-    (with-current-buffer buffer
-      (cond ((null *cab-parent*)
-            (setq *cab-parent* parent)
-
-            (make-variable-buffer-local 'kill-buffer-hook)
-            (add-hook 'kill-buffer-hook 'cab-kill-buffer-hook))
-           (t t)))
+    (if (cab-detect-parenthood-cycle buffer parent)
+       (error "%s(): Registering [[%s]] as a subordinate of [[%s]] would 
create a cycle of parents." fname buffer parent))
 
-    (local-set-key "\C-x\C-k" 'cab-deregister)))
+    (cond ((cab-registered-p buffer parent)
+          t)
+         ((with-current-buffer buffer *cab-parent*)
+          nil)
+         (t
+          (unless (cab-registered-p buffer parent)
+            (with-current-buffer parent
+              (push buffer *cab-subordinates*)
+              (make-local-variable 'kill-buffer-hook)
+              (add-hook 'kill-buffer-hook 'cab-kill-buffer-hook)
+              
+              ;; kill-buffer-hook
+              ;; (with-current-buffer "cpio.el" kill-buffer-hook)
+              
+              (local-set-key "\C-x\C-k" 'cab-deregister))
+            
+            (with-current-buffer buffer
+              (cond ((null *cab-parent*)
+                     (setq *cab-parent* parent)
+                     (make-local-variable 'kill-buffer-hook)
+                     (add-hook 'kill-buffer-hook 'cab-kill-buffer-hook)
+                     
+                     ;; kill-buffer-hook
+                     ;; (with-current-buffer "cpio.el" kill-buffer-hook)
+                     
+                     (local-set-key "\C-x\C-k" 'cab-deregister))
+                    (t t))))))))
+  
+(defun cab-detect-parenthood-cycle (buffer parent)
+  "Return non-NIL if affiliating BUFFER with PARENT would create a parenthood 
cycle."
+  (let ((fname "cab-detect-parenthood-cycle")
+       )
+    ;; (error "%s() is not yet implemented" fname)
+    (with-current-buffer parent
+      (catch 'detected
+       (while parent
+         (with-current-buffer parent
+           (cond ((eq (current-buffer) buffer)
+                  (throw 'detected t))
+                 ((null *cab-parent*)
+                  (setq parent *cab-parent*))
+                 (t
+                  (setq parent *cab-parent*)))))))
+    ))
 
 (defun cab-registered-p (buffer parent)
   "Return non-NIL if BUFFER is already registered to PARENT.
 CONTRACT: BUFFER and PARENT are buffers."
   (let ((fname "cab-registered-p"))
-    (with-current-buffer parent
-      (member buffer *cab-subordinates*))))
+    (cond ((or (null buffer)
+              (not (bufferp buffer))
+              (not (buffer-live-p buffer)))
+          nil)
+         ((or (null parent)
+              (not (bufferp parent))
+              (not (buffer-live-p parent)))
+          nil)
+         ((and (bufferp parent)
+               (buffer-live-p parent))
+          (with-current-buffer parent
+            (member buffer *cab-subordinates*))))))
 
 (defun cab-kill-buffer-hook ()
   "Deregister the current buffer when it is killed."
   (let ((fname "cab-kill-buffer-hook"))
     (cond ((buffer-live-p (current-buffer))
-          (message "    Deregistering subordinates: [[%s]]." 
*cab-subordinates*)
+          ;; (message "    Deregistering subordinates: [[%s]]." 
*cab-subordinates*)
           (mapc 'cab-deregister *cab-subordinates*))
          (t nil))))
 
 (defun cab-deregister (&optional buffer)
   "Deregister and kill BUFFER and all its subordinate buffers.
+Note that that will include their subordinates too.
 Remove its entry in its parent buffer."
   (interactive)
   (unless buffer (setq buffer (current-buffer)))
@@ -124,18 +236,22 @@ Remove its entry in its parent buffer."
           (with-current-buffer buffer 
             (setq parent *cab-parent*)
             (setq subordinates *cab-subordinates*))
-          (mapc 'cab-deregister subordinates)
-          (message "    About to use parent: [[%s]]." parent)
-          (if (and parent (bufferp parent) (buffer-live-p parent))
-              (with-current-buffer parent
-                (setq *cab-subordinates* (delete buffer *cab-subordinates*))
-                (mapc (lambda (sb)
-                        (unless (buffer-live-p sb)
-                          (setq *cab-subordinates* (delete buffer 
*cab-subordinates*))))
-                      *cab-subordinates*)))
-          (remove-hook 'kill-buffer-hook 'cab-simple-deregister)
-          (kill-buffer buffer))
-         (t t))))
+          (cond ((and parent
+                      (bufferp parent)
+                      (buffer-live-p parent)
+                      (cab-registered-p buffer parent))
+                 (mapc 'cab-deregister subordinates)
+                 ;; (message "    About to use parent: [[%s]]." parent)
+                 (with-current-buffer parent
+                   (setq *cab-subordinates* (delete buffer 
*cab-subordinates*)))
+                 (mapc 'cab-deregister *cab-subordinates*)
+                 (cond ((buffer-live-p buffer)
+                        (with-current-buffer buffer
+                          (remove-hook 'kill-buffer-hook 
'cab-simple-deregister))
+                        (kill-buffer buffer))
+                       (t t)))
+                (t nil)))
+         (t nil))))
 
 (defun cab-simple-deregister (buffer)
   "Deregister BUFFER and all its subordinates, but don't kill it."
diff --git a/cpio-bin.el b/cpio-bin.el
index 992657f..362151a 100644
--- a/cpio-bin.el
+++ b/cpio-bin.el
@@ -1,6 +1,6 @@
 ;; -*- coding: utf-8 -*-
 ;;; cpio-bin.el --- handle bin cpio entry header formats
-;      $Id: cpio-bin.el,v 1.5 2018/06/09 05:20:11 doug Exp $   
+;      $Id: cpio-bin.el,v 1.8 2018/06/17 07:34:11 doug Exp $   
 
 ;; COPYRIGHT
 ;; 
@@ -37,6 +37,26 @@
 ;; Dependencies
 ;; 
 (require 'bindat)
+
+;;;;;;;;;;;;;;;;
+;; Things to make the byte compiler happy.
+(declare-function cpio-entry-name "cpio.el" (attrs))
+(declare-function cpio-ino "cpio.el" (attrs))
+(declare-function cpio-mode-value "cpio.el" (attrs))
+(declare-function cpio-uid "cpio.el" (attrs))
+(declare-function cpio-gid "cpio.el" (attrs))
+(declare-function cpio-nlink "cpio.el" (attrs))
+(declare-function cpio-mtime "cpio.el" (attrs))
+(declare-function cpio-entry-size "cpio.el" (attrs))
+(declare-function cpio-dev-maj "cpio.el" (attrs))
+(declare-function cpio-rdev-maj "cpio.el" (attrs))
+(declare-function cpio-entry-attrs-from-catalog-entry "cpio.el" (entry))
+(declare-function cpio-contents-start "cpio.el" (entry-name))
+(declare-function cpio-entry-attrs "cpio.el" (entry-name))
+(defvar *cpio-catalog*)
+;; EO things for the byte compiler.
+;;;;;;;;;;;;;;;;
+
 
 ;; 
 ;; Vars
@@ -166,7 +186,9 @@ in a bin cpio archive.")
   "The TRAILER string of a cpio binary archive.")
   
 (defcustom *cpio-bin-blocksize* 512
-  "The default blocksize for a cpio binary archive.")
+  "The default blocksize for a cpio binary archive."
+  :type 'integer
+  :group 'cpio)
 
 
 ;; 
@@ -251,7 +273,7 @@ The function does NOT get the contents of that entry."
     (if (= 0 (mod (setq total (+ 1 *cpio-bin-name-field-offset* 
local-namesize)) 
                  *cpio-bin-padding-modulus*))
        (setq total (1+ total)))
-    (round-up total *cpio-bin-padding-modulus*)))
+    (cg-round-up total *cpio-bin-padding-modulus*)))
 
 ;;;;;;;;;;;;;;;;
 ;; 
@@ -284,10 +306,10 @@ This function does NOT include the contents."
                        (cons :filesize0 (car  filesize))
                        (cons :filesize1 (cdr  filesize))
                        (cons :filename  (concat name "\0")))))
-    (setq header-string (pad-right header-string (round-up (length 
header-string)
+    (setq header-string (cg-pad-right header-string (cg-round-up (length 
header-string)
                                                           
*cpio-bin-padding-modulus*)
                                   "\0"))
-    ;; (setq header-string (pad-right header-string (round-up (length 
header-string) *cpio-bin-padding-modulus*) "\0"))
+    ;; (setq header-string (cg-pad-right header-string (cg-round-up (length 
header-string) *cpio-bin-padding-modulus*) "\0"))
     ;; Check (at least during development).
     ;; (if (string-match-p *cpio-bin-header-re* header-string)
     ;; header-string
@@ -305,24 +327,6 @@ This function does NOT include the contents."
   (let ((fname "cpio-bin-make-ino"))
     (cpio-ino attrs)))
 
-(defun cpio-bin-BIG-inode-to-string (ino)
-  "Convert the BIG inode format (HIGH MIDDLE . LOW) to a printable integer.
-Since we're writing a BIN CPIO header it must be < 8 digits.
-N.B. On my 64 bit machine most-positive-fixnum is 2305843009213693951.
-I likely won't need this, but someone might."
-  ;; There's a contract here that INO is a triple of integers.
-  (let ((fname "cpio-bin-BIG-inode-to-string"))
-    (hex-format-triple ino)))
-
-(defun cpio-bin-big-inode-to-string (ino)
-  "Convert the big inode format (HIGH . LOW) to a printable integer.
-Since we're writing a BIN CPIO header it must be < 8 digits.
-N.B. On my 64 bit machine most-positive-fixnum is 2305843009213693951.
-I likely won't need this, but someone might."
-  (let ((fname "cpio-bin-big-inode-to-string"))
-    (error "%s() is not yet implemented." fname)
-    (hex-digit-count (integer-hex-digits))))
-
 (defun cpio-bin-make-mode (attrs)
   "Return a string value for the mode from the file attributes ATTRS."
   (let ((fname "cpio-bin-make-mode"))
@@ -367,24 +371,24 @@ I likely won't need this, but someone might."
               (logand #xFFFF filesize))))
 
 (defun cpio-bin-make-dev-maj (attrs)
-  "Return a string value for the WWWW from the file attributes ATTRS."
+  "Return a string value for the major device from the file attributes ATTRS."
   (let ((fname "cpio-bin-make-dev-maj"))
     ;; (error "%s() is not yet implemented." fname)
     (cpio-dev-maj attrs)))
 
 (defun cpio-bin-make-dev-min (attrs)
-  "Return a string value for the WWWW from the file attributes ATTRS."
+  "Return a string value for the minor device from the file attributes ATTRS."
   (let ((fname "cpio-bin-make-dev-min"))
     0))
 
 (defun cpio-bin-make-rdev-maj (attrs)
-  "Return a string value for the WWWW from the file attributes ATTRS."
+  "Return a string value for the major rdev from the file attributes ATTRS."
   (let ((fname "cpio-bin-make-rdev-maj"))
     ;; (error "%s() is not yet implemented." fname)
     (cpio-rdev-maj attrs)))
 
 (defun cpio-bin-make-rdev-min (attrs)
-  "Return a string value for the WWWW from the file attributes ATTRS."
+  "Return a string value for the minor rdev from the file attributes ATTRS."
   (let ((fname "cpio-bin-make-rdev-min"))
     0))
 
@@ -403,7 +407,8 @@ I likely won't need this, but someone might."
   "Parse the bin cpio header that begins at point.
 If there is no header there, then signal an error."
   (let ((fname "cpio-bin-parse-header-at-point"))
-    (unless (looking-at-p *cpio-bin-header-re*) (error "%s(): point is not 
looking at a bin header."))
+    (unless (looking-at-p *cpio-bin-header-re*)
+      (error "%s(): point is not looking at a bin header." fname))
     (cpio-bin-parse-header (string-as-unibyte (match-string-no-properties 
0)))))
 
 (defun cpio-bin-goto-next-header ()
@@ -451,9 +456,9 @@ CAVEAT: This respects neither narrowing nor the point."
             ;; A little bit of arithmétic gymnastics here
             ;; because cpio, being written in C, starts counting at 0, but
             ;; emacs' points start at 1.
-            (goto-char (1+ (round-up (1- header-end) 
*cpio-bin-padding-modulus*)))
+            (goto-char (1+ (cg-round-up (1- header-end) 
*cpio-bin-padding-modulus*)))
             (setq contents-start (point-marker))
-            (set-marker-insertion-type contents-start *insert-after*)
+            (set-marker-insertion-type contents-start *cg-insert-after*)
             ;; It feels like I really want a function for getting the contents.
             ;; But it's not obvious what is simpler or appropriately more 
general
             ;; than this one-liner.
@@ -476,8 +481,8 @@ for the current cpio archive."
   (let ((fname "cpio-bin-start-of-trailer")
        (end-of-contents 0))
     (mapc (lambda (ce)
-           (let ((attrs (cpio-entry-attrs-from-catalog-entry e)))
-             (setq end-of-contents (+ (cpio-entry-size attrs) 
(cpio-contents-start e)))))
+           (let ((attrs (cpio-entry-attrs-from-catalog-entry ce)))
+             (setq end-of-contents (+ (cpio-entry-size attrs) 
(cpio-contents-start ce)))))
          *cpio-catalog*)
     end-of-contents))
 
@@ -486,7 +491,7 @@ for the current cpio archive."
 once the TRAILER is written and padded."
   (let ((fname "cpio-bin-end-of-archive")
        (end-of-contents (cpio-bin-start-of-trailer)))
-    (round-up (+ end-of-contents (length *cpio-bin-trailer*)) 512)))
+    (cg-round-up (+ end-of-contents (length *cpio-bin-trailer*)) 512)))
 
 (defun cpio-bin-adjust-trailer ()
   "Replace thed current trailer in the current cpio bin archive."
@@ -505,7 +510,7 @@ once the TRAILER is written and padded."
     (insert base-trailer)
     (goto-char (point-max))
     ;; ...with padding.
-    (setq len (round-up (1- (point)) *cpio-bin-blocksize*))
+    (setq len (cg-round-up (1- (point)) *cpio-bin-blocksize*))
     (setq len (1+ (- len (point))))
     (insert (make-string len ?\0))
     (setq buffer-read-only t)))
@@ -531,6 +536,13 @@ once the TRAILER is written and padded."
     (delete-region (point) (point-max))
     (setq buffer-read-only t)))
 
+(defun cpio-bin-make-chcksum-for-file (filename)
+  "Return the checksum for FILENAME."
+  (let ((fname "cpio-newc-make-chcksum-for-file")
+       )
+    ;; (error "%s() is not yet implemented" fname)
+    0
+    ))
 
 ;; 
 ;; Commands
diff --git a/cpio-crc.el b/cpio-crc.el
index df12d6d..eb4bfde 100644
--- a/cpio-crc.el
+++ b/cpio-crc.el
@@ -1,6 +1,6 @@
 ;; -*- coding: utf-8 -*-
 ;;; cpio-crc.el --- handle crc cpio entry header formats
-;      $Id: cpio-crc.el,v 1.7 2018/06/03 14:01:55 doug Exp $   
+;      $Id: cpio-crc.el,v 1.10 2018/06/17 07:34:11 doug Exp $  
 
 ;; COPYRIGHT
 ;; 
@@ -36,8 +36,28 @@
 ;;
 ;; Dependencies
 ;; 
-(require 'cpio-generic)
-(load-file (concat default-directory "cpio-newc.el"))
+(condition-case err
+    (require 'cpio-generic)
+    (error 
+     (if (file-exists-p (concat default-directory "cpio-newc.elc"))
+        (load (concat default-directory "cpio-newc.elc"))
+       (load (concat default-directory "cpio-newc.el")))))
+(condition-case err
+    (require 'cpio-newc)
+    (error
+     (if (file-exists-p (concat default-directory "cpio-newc.elc"))
+        (load (concat default-directory "cpio-newc.elc"))
+       (load (concat default-directory "cpio-newc.el")))))
+
+;;;;;;;;;;;;;;;;
+;; Things to make the byte compiler happy.
+(declare-function cpio-entry-name "cpio.el" (attrs))
+(declare-function cpio-entry-exists-p "cpio.el" (entry-name))
+(declare-function cpio-contents "cpio.el" (entry-name &optional 
archive-buffer))
+(declare-function cpio-entry-size "cpio.el" (attrs))
+(declare-function cpio-validate-catalog-entry "cpio.el" (catalog-entry))
+;; EO things for the byte compiler.
+;;;;;;;;;;;;;;;;
 
 
 ;; 
@@ -168,7 +188,7 @@ CAVEATS:
                         (not (setq found (looking-at *cpio-newc-header-re*)))))
             (if found 
                 (match-string-no-properties 0)))))))
-(setq cpio-header-at-point-func 'cpio-newc-header-at-point)
+;; OBSOLETE (setq cpio-header-at-point-func 'cpio-newc-header-at-point)
 
 ;;;;;;;;;;;;;;;;
 ;; 
@@ -257,7 +277,7 @@ This function does NOT include the contents."
                                                                    name))))
                                 name
                                 "\0"))
-    (setq header-string (pad-right header-string (round-up (length 
header-string) *cpio-crc-padding-modulus*) "\0"))
+    (setq header-string (cg-pad-right header-string (cg-round-up (length 
header-string) *cpio-crc-padding-modulus*) "\0"))
     ;; Check (at least during development).
     (if (string-match-p *cpio-crc-header-re* header-string)
        header-string
@@ -267,8 +287,6 @@ This function does NOT include the contents."
   "Return the magic string for a CRC archive."
   *cpio-crc-magic-re*)
 (defalias 'cpio-crc-make-ino            'cpio-newc-make-ino)
-(defalias 'cpio-crc-BIG-inode-to-string 'cpio-newc-BIG-inode-to-string)
-(defalias 'cpio-crc-big-inode-to-string 'cpio-newc-big-inode-to-string)
 (defalias 'cpio-crc-make-mode           'cpio-newc-make-mode)
 (defalias 'cpio-crc-make-uid            'cpio-newc-make-uid)
 (defalias 'cpio-crc-make-gid            'cpio-newc-make-gid)
@@ -306,7 +324,8 @@ This function does NOT include the contents."
   "Parse the crc cpio header that begins at point.
 If there is no header there, then signal an error."
   (let ((fname "cpio-crc-parse-header-at-point"))
-    (unless (looking-at-p *cpio-crc-header-re*) (error "%s(): point is not 
looking at a crc header."))
+    (unless (looking-at-p *cpio-crc-header-re*)
+      (error "%s(): point is not looking at a crc header." fname))
     (cpio-crc-parse-header (match-string-no-properties 0))))
 
 (defun cpio-crc-goto-next-header ()
@@ -354,9 +373,9 @@ CAVEAT: This respects neither narrowing nor the point."
             ;; A little bit of arithmetic gymnastics here
             ;; because cpio, being written in C, starts counting at 0, but
             ;; emacs' points start at 1.
-            (goto-char (1+ (round-up (1- header-end) *cpio-padding-modulus*)))
+            (goto-char (1+ (cg-round-up (1- header-end) 
*cpio-crc-padding-modulus*)))
             (setq contents-start (point-marker))
-            (set-marker-insertion-type contents-start *insert-after*)
+            (set-marker-insertion-type contents-start *cg-insert-after*)
             ;; It feels like I really want a function for getting the contents.
             ;; But it's not obvious what is simpler or appropriately more 
general
             ;; than this one-liner.
@@ -397,13 +416,23 @@ CAVEAT: This respects neither narrowing nor the point."
     (insert base-trailer)
     (goto-char (point-max))
     ;; ...with padding.
-    (setq len (round-up (1- (point)) *cpio-crc-blocksize*))
+    (setq len (cg-round-up (1- (point)) *cpio-crc-blocksize*))
     (setq len (1+ (- len (point))))
     (insert (make-string len ?\0))
     (setq buffer-read-only t)))
 
 (defalias 'cpio-crc-delete-trailer 'cpio-newc-delete-trailer)
 
+(defun cpio-crc-make-chksum-for-file (filename)
+  "Return the checksum for FILENAME."
+  (let ((fname "cpio-newc-make-chksum-for-file")
+       )
+    ;; (error "%s() is not yet implemented" fname)
+    (with-temp-buffer
+      (insert-file-contents filename)
+      (cpio-crc-make-chksum (buffer-substring-no-properties (point-min) 
(point-max))))
+    ))
+
 
 ;; 
 ;; Commands
diff --git a/cpio-dired-crc-test.el b/cpio-dired-crc-test.el
index 8b22636..5f54ad6 100644
--- a/cpio-dired-crc-test.el
+++ b/cpio-dired-crc-test.el
@@ -1,6 +1,6 @@
 ;; -*- coding: utf-8 -*-
 ;;; cpio-dired-crc-test.el --- brief description
-;      $Id: cpio-dired-crc-test.el,v 1.4 2018/06/04 19:21:15 doug Exp $        
+;      $Id: cpio-dired-crc-test.el,v 1.9 2018/06/17 07:34:11 doug Exp $        
 
 ;; COPYRIGHT
 
@@ -37,6 +37,126 @@
 ;; 
 (load (concat default-directory "cpio.el"))
 
+;;;;;;;;;;;;;;;;
+;; Things to make the byte compiler happy.
+(defvar *cpio-crc-chksum-re-idx*)
+(defvar *cpio-crc-filename-re-idx*)
+(defvar *cpio-crc-filesize-re-idx*)
+(defvar *cpio-crc-gid-re-idx*)
+(defvar *cpio-crc-header-re*)
+(defvar *cpio-crc-magic-re-idx*)
+(defvar *cpio-crc-mode-re-idx*)
+(defvar *cpio-crc-namesize-re-idx*)
+(defvar *cpio-crc-nlink-re-idx*)
+(defvar *cpio-crc-uid-re-idx*)
+(defvar cpio-archive-buffer)
+(defvar cpio-dired-buffer)
+(defvar cpio-dired-del-marker)
+(defvar cpio-dired-keep-marker-copy-str)
+(defvar cpio-dired-keep-marker-rename)
+(defvar run-dir)
+(declare-function cpio-catalog "cpio.el")
+(declare-function cpio-contents-buffer-name "cpio.el")
+(declare-function cpio-dired-add-entry "cpio-dired.el")
+(declare-function cpio-dired-buffer-name "cpio-dired.el")
+(declare-function cpio-dired-change-marks "cpio-dired.el")
+(declare-function cpio-dired-clean-directory "cpio-dired.el")
+(declare-function cpio-dired-copy-entry-name-as-kill "cpio-dired.el")
+(declare-function cpio-dired-create-directory "cpio-dired.el")
+(declare-function cpio-dired-diff "cpio-dired.el")
+(declare-function cpio-dired-display-entry "cpio-dired.el")
+(declare-function cpio-dired-do-async-shell-command "cpio-dired.el")
+(declare-function cpio-dired-do-chgrp "cpio-dired.el")
+(declare-function cpio-dired-do-chmod "cpio-dired.el")
+(declare-function cpio-dired-do-chown "cpio-dired.el")
+(declare-function cpio-dired-do-compress "cpio-dired.el")
+(declare-function cpio-dired-do-copy "cpio-dired.el")
+(declare-function cpio-dired-do-copy-regexp "cpio-dired.el")
+(declare-function cpio-dired-do-delete "cpio-dired.el")
+(declare-function cpio-dired-do-flagged-delete "cpio-dired.el")
+(declare-function cpio-dired-do-hardlink "cpio-dired.el")
+(declare-function cpio-dired-do-hardlink-regexp "cpio-dired.el")
+(declare-function cpio-dired-do-isearch "cpio-dired.el")
+(declare-function cpio-dired-do-isearch-regexp "cpio-dired.el")
+(declare-function cpio-dired-do-kill-lines "cpio-dired.el")
+(declare-function cpio-dired-do-print "cpio-dired.el")
+(declare-function cpio-dired-do-query-replace-regexp "cpio-dired.el")
+(declare-function cpio-dired-do-redisplay "cpio-dired.el")
+(declare-function cpio-dired-do-rename "cpio-dired.el")
+(declare-function cpio-dired-do-rename-regexp "cpio-dired.el")
+(declare-function cpio-dired-do-search "cpio-dired.el")
+(declare-function cpio-dired-do-symlink "cpio-dired.el")
+(declare-function cpio-dired-do-symlink-regexp "cpio-dired.el")
+(declare-function cpio-dired-do-touch "cpio-dired.el")
+(declare-function cpio-dired-downcase "cpio-dired.el")
+(declare-function cpio-dired-extract-all "cpio-dired.el")
+(declare-function cpio-dired-extract-entries "cpio-dired.el")
+(declare-function cpio-dired-find-alternate-entry "cpio-dired.el")
+(declare-function cpio-dired-find-entry-other-window "cpio-dired.el")
+(declare-function cpio-dired-flag-auto-save-entries "cpio-dired.el")
+(declare-function cpio-dired-flag-backup-entries "cpio-dired.el")
+(declare-function cpio-dired-flag-entries-regexp "cpio-dired.el")
+(declare-function cpio-dired-flag-entry-deletion "cpio-dired.el")
+(declare-function cpio-dired-flag-garbage-entries "cpio-dired.el")
+(declare-function cpio-dired-get-entry-name "cpio-dired.el")
+(declare-function cpio-dired-goto-entry "cpio-dired.el")
+(declare-function cpio-dired-hide-all "cpio-dired.el")
+(declare-function cpio-dired-hide-details-mode "cpio-dired.el" ())
+(declare-function cpio-dired-hide-details-mode "cpio-dired.el")
+(declare-function cpio-dired-hide-subdir "cpio-dired.el")
+(declare-function cpio-dired-isearch-entry-names "cpio-dired.el")
+(declare-function cpio-dired-isearch-entry-names-regexp "cpio-dired.el")
+(declare-function cpio-dired-kill "cpio-dired.el")
+(declare-function cpio-dired-mark "cpio-dired.el")
+(declare-function cpio-dired-mark-directories "cpio-dired.el")
+(declare-function cpio-dired-mark-entries-containing-regexp "cpio-dired.el")
+(declare-function cpio-dired-mark-entries-regexp "cpio-dired.el")
+(declare-function cpio-dired-mark-executables "cpio-dired.el")
+(declare-function cpio-dired-mark-subdir-entries "cpio-dired.el")
+(declare-function cpio-dired-mark-symlinks "cpio-dired.el")
+(declare-function cpio-dired-mark-this-entry "cpio-dired.el")
+(declare-function cpio-dired-mouse-find-entry-other-window "cpio-dired.el")
+(declare-function cpio-dired-move-to-first-entry "cpio-dired.el")
+(declare-function cpio-dired-next-dirline "cpio-dired.el")
+(declare-function cpio-dired-next-line "cpio-dired.el")
+(declare-function cpio-dired-next-marked-entry "cpio-dired.el")
+(declare-function cpio-dired-prev-marked-entry "cpio-dired.el")
+(declare-function cpio-dired-previous-line "cpio-dired.el")
+(declare-function cpio-dired-save-archive "cpio-dired.el")
+(declare-function cpio-dired-show-entry-type "cpio-dired.el")
+(declare-function cpio-dired-sort-toggle-or-edit "cpio-dired.el")
+(declare-function cpio-dired-toggle-marks "cpio-dired.el")
+(declare-function cpio-dired-toggle-read-only "cpio-dired.el")
+(declare-function cpio-dired-undo "cpio-dired.el")
+(declare-function cpio-dired-unmark "cpio-dired.el")
+(declare-function cpio-dired-unmark-all-entries "cpio-dired.el")
+(declare-function cpio-dired-unmark-all-marks "cpio-dired.el")
+(declare-function cpio-dired-unmark-backward "cpio-dired.el")
+(declare-function cpio-dired-up-directory "cpio-dired.el")
+(declare-function cpio-dired-upcase "cpio-dired.el")
+(declare-function cpio-dired-view-archive "cpio-dired.el")
+(declare-function cpio-dired-view-entry "cpio-dired.el")
+(declare-function cpio-epa-dired-do-decrypt "cpio-dired.el")
+(declare-function cpio-epa-dired-do-encrypt "cpio-dired.el")
+(declare-function cpio-epa-dired-do-sign "cpio-dired.el")
+(declare-function cpio-epa-dired-do-verify "cpio-dired.el")
+(declare-function cpio-image-dired-delete-tag "cpio-dired.el")
+(declare-function cpio-image-dired-dired-comment-entries "cpio-dired.el")
+(declare-function cpio-image-dired-dired-display-external "cpio-dired.el")
+(declare-function cpio-image-dired-dired-display-image "cpio-dired.el")
+(declare-function cpio-image-dired-dired-edit-comment-and-tags "cpio-dired.el")
+(declare-function cpio-image-dired-dired-toggle-marked-thumbs "cpio-dired.el")
+(declare-function cpio-image-dired-display-thumb "cpio-dired.el")
+(declare-function cpio-image-dired-display-thumbs "cpio-dired.el")
+(declare-function cpio-image-dired-display-thumbs-append "cpio-dired.el")
+(declare-function cpio-image-dired-jump-thumbnail-buffer "cpio-dired.el")
+(declare-function cpio-image-dired-mark-tagged-entries "cpio-dired.el")
+(declare-function cpio-image-dired-tag-entries "cpio-dired.el")
+(declare-function cpio-mode "cpio.el")
+(declare-function cpio-view-dired-style-buffer "cpio-dired.el")
+;; EO things for the byte compiler.
+;;;;;;;;;;;;;;;;
+
 
 ;; 
 ;; Vars
@@ -6609,7 +6729,7 @@ If MAKE is non-nil, then run 'make crc' as part of the 
reset."
                             *cdmt-crc-large-archive*)))
     (cd run-dir)
     (mapc (lambda (an)
-           (setq cpio-archive-buffer (find-file-noselect an 'no-warn))
+           (setq cpio-archive-buffer (find-file-noselect an nil nil))
            (if (and (file-exists-p an)
                     (buffer-live-p (get-buffer cpio-archive-buffer)))
                (with-current-buffer cpio-archive-buffer
@@ -6629,7 +6749,7 @@ If MAKE is non-nil, then run 'make crc' as part of the 
reset."
                         *cdmt-crc-small-archive*))
 
     (delete-other-windows)
-    (with-current-buffer (setq cpio-archive-buffer (find-file-noselect 
archive-name 'no-warn))
+    (with-current-buffer (setq cpio-archive-buffer (find-file-noselect 
archive-name nil nil))
       (if (string-match "/test_data/.+/test_data/" (buffer-file-name))
          (error "Bogus archive!"))
       (cpio-mode))
@@ -6732,7 +6852,9 @@ In principal, FROM-STR can be a regular expression."
   (interactive)
   (let ((fname "cdmt-crc-finished-command")
        (finished-command-regexp ") ;✓$")
-       (command-name))
+       (command-name)
+       (where)
+       )
     (cond ((re-search-forward finished-command-regexp (point-max) t)
           (beginning-of-line)
           (re-search-forward "cdmt-crc-" (line-end-position))
@@ -6993,7 +7115,7 @@ to check that the saved archive seems sane."
     (if (file-exists-p test-buffer-dir)
        (call-process "rm" nil nil nil "-rf" test-buffer-dir))
     (if (file-exists-p test-buffer-dir)
-       (error "%s(): Removing %s failed."))
+       (error "%s(): Removing %s failed." fname test-buffer-dir))
     (with-current-buffer cpio-archive-buffer
       (cpio-dired-save-archive))
     (make-directory test-buffer-dir 'parents)
@@ -7097,12 +7219,6 @@ cpio-dired-isearch-entry-names-regexp is not yet 
implemented -- expect an error.
      :type 'error))
 
 
-(ert-deftest cdmt-crc-cpio-describe-mode ()
-  "Test cpio-describe-mode.
-cpio-describe-mode is not yet implemented -- expect an error."
-  (should-error (cpio-describe-mode)
-     :type 'error))
-
 (ert-deftest cdmt-crc-cpio-dired-add-entry ()
   "Test cpio-dired-add-entry.
 cpio-dired-add-entry is not yet implemented -- expect an error."
@@ -7218,8 +7334,8 @@ cpio-dired-diff) ; is not yet implemented -- expect an 
error."
             (setq cpio-catalog-contents-after (format "%s" (pp 
(cpio-catalog))))))
 
     (with-current-buffer cpio-dired-buffer
-      (should (and "Viewing an entry should not change the archive buffer."
-                  (string-equal *cdmt-crc-untouched-small-archive* 
cpio-archive-buffer-contents)))
+      ;;(should (and "Viewing an entry should not change the archive buffer."
+       (should    (string-equal *cdmt-crc-untouched-small-archive* 
cpio-archive-buffer-contents))
       (should (and "Viewing an entry should not change the dired-style buffer."
                   (string-match *cdmt-crc-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
       (should (and "The contents buffer should not be null."
@@ -7412,8 +7528,7 @@ cpio-dired-do-async-shell-command) ; is not yet 
implemented -- expect an error."
 \\s-+([[:digit:]]+ [[:digit:]]+)
 \\s-+0 [[:digit:]]+ [[:digit:]]+ [[:digit:]]+ [[:digit:]]+ 8 0 \"ccccc\.d\"]
 \\s-+#<marker at 2077 in alphabet_small\.crc\.cpio> #<marker at 2197 in 
alphabet_small\.crc\.cpio> cpio-mode-entry-unmodified\]))
-" cpio-catalog-contents-after))
-
+" cpio-catalog-contents-after)))
 
     (cdmt-crc-reset)
     
@@ -7544,7 +7659,7 @@ cpio-dired-do-async-shell-command) ; is not yet 
implemented -- expect an error."
              ([[:digit:]]+ [[:digit:]]+)
              0 [[:digit:]]+ [[:digit:]]+ [[:digit:]]+ [[:digit:]]+ 8 0 
\"ccccc\.d\"]
    #<marker at 2077 in alphabet_small\.crc\.cpio> #<marker at 2197 in 
alphabet_small\.crc\.cpio> cpio-mode-entry-unmodified\]))
-" cpio-catalog-contents-after))
+" cpio-catalog-contents-after)))
 
     (cdmt-crc-reset)
 
@@ -7568,19 +7683,19 @@ cpio-dired-do-async-shell-command) ; is not yet 
implemented -- expect an error."
 
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} a
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aa
-  -rw-r--r--   1  [[:digit:]]+  7777        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaa
+\\* -rw-r--r--   1  [[:digit:]]+  7777        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaa
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaa
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaaa
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaaa.d
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} b
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bb
-  -rw-r--r--   1  [[:digit:]]+  7777        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbb
+\\* -rw-r--r--   1  [[:digit:]]+  7777        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbb
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbb
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbbb
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbbb.d
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} c
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} cc
-  -rw-r--r--   1  [[:digit:]]+  7777        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccc
+\\* -rw-r--r--   1  [[:digit:]]+  7777        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccc
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} cccc
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccccc
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccccc.d
@@ -9188,19 +9303,19 @@ TRAILER!!!      (( filename ))
 
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} a
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aa
-  -rw-r--r--   1  7777  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaa
+\\* -rw-r--r--   1  7777  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaa
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaa
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaaa
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaaa.d
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} b
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bb
-  -rw-r--r--   1  7777  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbb
+\\* -rw-r--r--   1  7777  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbb
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbb
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbbb
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbbb.d
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} c
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} cc
-  -rw-r--r--   1  7777  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccc
+\\* -rw-r--r--   1  7777  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccc
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} cccc
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccccc
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccccc.d
@@ -9595,19 +9710,19 @@ TRAILER!!!      (( filename ))
 
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} a
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aa
-  -rw-r--r--   1  7777  3333        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaa
+\\* -rw-r--r--   1  7777  3333        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaa
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaa
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaaa
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaaa.d
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} b
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bb
-  -rw-r--r--   1  7777  3333        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbb
+\\* -rw-r--r--   1  7777  3333        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbb
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbb
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbbb
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbbb.d
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} c
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} cc
-  -rw-r--r--   1  7777  3333        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccc
+\\* -rw-r--r--   1  7777  3333        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccc
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} cccc
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccccc
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccccc.d
@@ -13119,7 +13234,11 @@ They reflect an outstanding bug in cpio-affiliated 
buffers."
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
         (cpio-dired-buffer-contents)
+       (cpio-contents-buffer)
+       (cpio-contents-buffer-string)
        (cpio-contents-window)
+       (cpio-catalog-contents-before)
+       (cpio-catalog-contents-after)
        (entry-name)
        (past-entries ()))
     (cdmt-crc-reset 'make)
@@ -13860,7 +13979,7 @@ D -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|de
 
     (cdmt-crc-reset 'make)
     
-    (progn (setq cpio-dired-catalog-contents-before (cpio-catalog))
+    (progn (setq cpio-catalog-contents-before (cpio-catalog))
           (cpio-dired-goto-entry entry-name)
           (mapc (lambda (s)            ;suffix
                   (setq unread-command-events (listify-key-sequence (concat 
entry-name "." s "\n")))
@@ -14963,7 +15082,7 @@ cpio-dired-prev-marked-entry is not yet implemented -- 
expect an error."
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (= where 1155))
-    (should (string-match *cdmt-crc-untouched-small-archive-buffer* 
cpio-archive-buffer-contents))
+    (should (string-match *cdmt-crc-untouched-small-archive* 
cpio-archive-buffer-contents))
     (should (and "Expecting an untouched dired buffer. (17991)"
                 (string-match *cdmt-crc-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
     (should (and "Expecting an unchanged catalog. (17959)"
@@ -14982,7 +15101,7 @@ cpio-dired-prev-marked-entry is not yet implemented -- 
expect an error."
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (= where 1019))
-    (should (string-match *cdmt-crc-untouched-small-archive-buffer* 
cpio-archive-buffer-contents))
+    (should (string-match *cdmt-crc-untouched-small-archive* 
cpio-archive-buffer-contents))
     (should (and "Expecting an untouched dired buffer. (17992)"
                 (string-match *cdmt-crc-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
     (should (and "Expecting an unchanged catalog. (17960)"
@@ -15001,7 +15120,7 @@ cpio-dired-prev-marked-entry is not yet implemented -- 
expect an error."
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (= where 774))
-    (should (string-match *cdmt-crc-untouched-small-archive-buffer* 
cpio-archive-buffer-contents))
+    (should (string-match *cdmt-crc-untouched-small-archive* 
cpio-archive-buffer-contents))
     (should (and "Expecting an untouched dired buffer. (17993)"
                 (string-match *cdmt-crc-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
     (should (and "Expecting an unchanged catalog. (17961)"
@@ -15757,12 +15876,6 @@ cpio-image-dired-tag-entries is not yet implemented -- 
expect an error."
   (should-error (cpio-image-dired-tag-entries)
      :type 'error))
 
-(ert-deftest cdmt-crc-cpio-mouse-face ()
-  "Test cpio-mouse-face.
-cpio-mouse-face is not yet implemented -- expect an error."
-  (should-error (cpio-mouse-face)
-     :type 'error))
-
 
 (ert-deftest cdmt-crc-revert-buffer ()
   "Test revert-buffer.
@@ -16256,7 +16369,7 @@ newDirectory    (( filename ))
 ;; Run tests
 ;;
 
-(ert "^cdmt-crc-")
+(ert "\\`cdmt-crc-")
 
 
 ;;; cpio-dired-crc-test.el ends here
diff --git a/cpio-dired-odc-test.el b/cpio-dired-odc-test.el
index 88dc8de..08b8c0c 100644
--- a/cpio-dired-odc-test.el
+++ b/cpio-dired-odc-test.el
@@ -1,6 +1,6 @@
 ;; -*- coding: utf-8 -*-
 ;;; cpio-dired-test.el --- Tests of cpio-dired-mode.
-;      $Id: cpio-dired-odc-test.el,v 1.4 2018/06/04 19:21:15 doug Exp $        
+;      $Id: cpio-dired-odc-test.el,v 1.7 2018/06/17 07:34:12 doug Exp $        
 
 ;; COPYRIGHT
 
@@ -53,6 +53,130 @@
 ;; 
 (load (concat default-directory "cpio.el"))
 
+;;;;;;;;;;;;;;;;
+;; Things to make the byte compiler happy.
+(defvar *cpio-odc-filename-re-idx*)
+(defvar *cpio-odc-filesize-re-idx*)
+(defvar *cpio-odc-gid-re-idx*)
+(defvar *cpio-odc-gid-re-idx*)
+(defvar *cpio-odc-header-re*)
+(defvar *cpio-odc-magic-re-idx*)
+(defvar *cpio-odc-mode-re-idx*)
+(defvar *cpio-odc-namesize-re-idx*)
+(defvar *cpio-odc-nlink-re-idx*)
+(defvar *cpio-odc-uid-re-idx*)
+(defvar cpio-archive-buffer)
+(defvar cpio-catalog-contents-after)
+(defvar cpio-catalog-contents-before)
+(defvar cpio-contents-buffer)
+(defvar cpio-contents-buffer-string)
+(defvar cpio-dired-buffer)
+(defvar cpio-dired-catalog-contents-before)
+(defvar cpio-dired-del-marker)
+(defvar cpio-dired-keep-marker-copy-str)
+(defvar cpio-dired-keep-marker-rename)
+(defvar run-dir)
+(declare-function cpio-catalog "cpio.el")
+(declare-function cpio-contents-buffer-name "cpio.el")
+(declare-function cpio-dired-add-entry "cpio-dired.el")
+(declare-function cpio-dired-buffer-name "cpio-dired.el")
+(declare-function cpio-dired-change-marks "cpio-dired.el")
+(declare-function cpio-dired-clean-directory "cpio-dired.el")
+(declare-function cpio-dired-copy-entry-name-as-kill "cpio-dired.el")
+(declare-function cpio-dired-create-directory "cpio-dired.el")
+(declare-function cpio-dired-diff "cpio-dired.el")
+(declare-function cpio-dired-display-entry "cpio-dired.el")
+(declare-function cpio-dired-do-async-shell-command "cpio-dired.el")
+(declare-function cpio-dired-do-chgrp "cpio-dired.el")
+(declare-function cpio-dired-do-chmod "cpio-dired.el")
+(declare-function cpio-dired-do-chown "cpio-dired.el")
+(declare-function cpio-dired-do-compress "cpio-dired.el")
+(declare-function cpio-dired-do-copy "cpio-dired.el")
+(declare-function cpio-dired-do-copy-regexp "cpio-dired.el")
+(declare-function cpio-dired-do-delete "cpio-dired.el")
+(declare-function cpio-dired-do-flagged-delete "cpio-dired.el")
+(declare-function cpio-dired-do-hardlink "cpio-dired.el")
+(declare-function cpio-dired-do-hardlink-regexp "cpio-dired.el")
+(declare-function cpio-dired-do-isearch "cpio-dired.el")
+(declare-function cpio-dired-do-isearch-regexp "cpio-dired.el")
+(declare-function cpio-dired-do-kill-lines "cpio-dired.el")
+(declare-function cpio-dired-do-print "cpio-dired.el")
+(declare-function cpio-dired-do-query-replace-regexp "cpio-dired.el")
+(declare-function cpio-dired-do-redisplay "cpio-dired.el")
+(declare-function cpio-dired-do-rename "cpio-dired.el")
+(declare-function cpio-dired-do-rename-regexp "cpio-dired.el")
+(declare-function cpio-dired-do-search "cpio-dired.el")
+(declare-function cpio-dired-do-symlink "cpio-dired.el")
+(declare-function cpio-dired-do-symlink-regexp "cpio-dired.el")
+(declare-function cpio-dired-do-touch "cpio-dired.el")
+(declare-function cpio-dired-downcase "cpio-dired.el")
+(declare-function cpio-dired-extract-all "cpio-dired.el")
+(declare-function cpio-dired-extract-entries "cpio-dired.el")
+(declare-function cpio-dired-find-alternate-entry "cpio-dired.el")
+(declare-function cpio-dired-find-entry-other-window "cpio-dired.el")
+(declare-function cpio-dired-flag-auto-save-entries "cpio-dired.el")
+(declare-function cpio-dired-flag-backup-entries "cpio-dired.el")
+(declare-function cpio-dired-flag-entries-regexp "cpio-dired.el")
+(declare-function cpio-dired-flag-entry-deletion "cpio-dired.el")
+(declare-function cpio-dired-flag-garbage-entries "cpio-dired.el")
+(declare-function cpio-dired-get-entry-name "cpio-dired.el")
+(declare-function cpio-dired-goto-entry "cpio-dired.el")
+(declare-function cpio-dired-hide-all "cpio-dired.el")
+(declare-function cpio-dired-hide-details-mode "cpio-dired.el")
+(declare-function cpio-dired-hide-subdir "cpio-dired.el")
+(declare-function cpio-dired-isearch-entry-names "cpio-dired.el")
+(declare-function cpio-dired-isearch-entry-names-regexp "cpio-dired.el")
+(declare-function cpio-dired-kill "cpio-dired.el")
+(declare-function cpio-dired-mark "cpio-dired.el")
+(declare-function cpio-dired-mark-directories "cpio-dired.el")
+(declare-function cpio-dired-mark-entries-containing-regexp "cpio-dired.el")
+(declare-function cpio-dired-mark-entries-regexp "cpio-dired.el")
+(declare-function cpio-dired-mark-executables "cpio-dired.el")
+(declare-function cpio-dired-mark-subdir-entries "cpio-dired.el")
+(declare-function cpio-dired-mark-symlinks "cpio-dired.el")
+(declare-function cpio-dired-mark-this-entry "cpio-dired.el")
+(declare-function cpio-dired-mouse-find-entry-other-window "cpio-dired.el")
+(declare-function cpio-dired-move-to-first-entry "cpio-dired.el")
+(declare-function cpio-dired-next-dirline "cpio-dired.el")
+(declare-function cpio-dired-next-line "cpio-dired.el")
+(declare-function cpio-dired-next-marked-entry "cpio-dired.el")
+(declare-function cpio-dired-prev-marked-entry "cpio-dired.el")
+(declare-function cpio-dired-previous-line "cpio-dired.el")
+(declare-function cpio-dired-save-archive "cpio-dired.el")
+(declare-function cpio-dired-show-entry-type "cpio-dired.el")
+(declare-function cpio-dired-sort-toggle-or-edit "cpio-dired.el")
+(declare-function cpio-dired-toggle-marks "cpio-dired.el")
+(declare-function cpio-dired-toggle-read-only "cpio-dired.el")
+(declare-function cpio-dired-undo "cpio-dired.el")
+(declare-function cpio-dired-unmark "cpio-dired.el")
+(declare-function cpio-dired-unmark-all-entries "cpio-dired.el")
+(declare-function cpio-dired-unmark-all-marks "cpio-dired.el")
+(declare-function cpio-dired-unmark-backward "cpio-dired.el")
+(declare-function cpio-dired-up-directory "cpio-dired.el")
+(declare-function cpio-dired-upcase "cpio-dired.el")
+(declare-function cpio-dired-view-archive "cpio-dired.el")
+(declare-function cpio-dired-view-entry "cpio-dired.el")
+(declare-function cpio-epa-dired-do-decrypt "cpio-dired.el")
+(declare-function cpio-epa-dired-do-encrypt "cpio-dired.el")
+(declare-function cpio-epa-dired-do-sign "cpio-dired.el")
+(declare-function cpio-epa-dired-do-verify "cpio-dired.el")
+(declare-function cpio-image-dired-delete-tag "cpio-dired.el")
+(declare-function cpio-image-dired-dired-comment-entries "cpio-dired.el")
+(declare-function cpio-image-dired-dired-display-external "cpio-dired.el")
+(declare-function cpio-image-dired-dired-display-image "cpio-dired.el")
+(declare-function cpio-image-dired-dired-edit-comment-and-tags "cpio-dired.el")
+(declare-function cpio-image-dired-dired-toggle-marked-thumbs "cpio-dired.el")
+(declare-function cpio-image-dired-display-thumb "cpio-dired.el")
+(declare-function cpio-image-dired-display-thumbs "cpio-dired.el")
+(declare-function cpio-image-dired-display-thumbs-append "cpio-dired.el")
+(declare-function cpio-image-dired-jump-thumbnail-buffer "cpio-dired.el")
+(declare-function cpio-image-dired-mark-tagged-entries "cpio-dired.el")
+(declare-function cpio-image-dired-tag-entries "cpio-dired.el")
+(declare-function cpio-mode "cpio.el")
+(declare-function cpio-view-dired-style-buffer "cpio.el")
+;; EO for the byte compiler.
+;;;;;;;;;;;;;;;;
+
 
 ;; 
 ;; Vars
@@ -6749,7 +6873,8 @@ In principal, FROM-STR can be a regular expression."
   (interactive)
   (let ((fname "cdmt-odc-finished-command")
        (finished-command-regexp ") ;✓$")
-       (command-name))
+       (command-name)
+       (where))
     (cond ((re-search-forward finished-command-regexp (point-max) t)
           (beginning-of-line)
           (re-search-forward "cdmt-odc-" (line-end-position))
@@ -7010,7 +7135,7 @@ to check that the saved archive seems sane."
     (if (file-exists-p test-buffer-dir)
        (call-process "rm" nil nil nil "-rf" test-buffer-dir))
     (if (file-exists-p test-buffer-dir)
-       (error "%s(): Removing %s failed."))
+       (error "%s(): Removing %s failed." fname test-buffer-dir))
     (with-current-buffer cpio-archive-buffer
       (cpio-dired-save-archive))
     (make-directory test-buffer-dir 'parents)
@@ -7092,12 +7217,6 @@ cpio-dired-isearch-entry-names-regexp is not yet 
implemented -- expect an error.
      :type 'error))
 
 
-(ert-deftest cdmt-odc-cpio-describe-mode ()
-  "Test cpio-describe-mode.
-cpio-describe-mode is not yet implemented -- expect an error."
-  (should-error (cpio-describe-mode)
-     :type 'error))
-
 (ert-deftest cdmt-odc-cpio-dired-add-entry ()
   "Test cpio-dired-add-entry.
 cpio-dired-add-entry is not yet implemented -- expect an error."
@@ -7562,19 +7681,19 @@ cpio-dired-do-async-shell-command) ; is not yet 
implemented -- expect an error."
 
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} a
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aa
-  -rw-r--r--   1  [[:digit:]]+  7777        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaa
+\\* -rw-r--r--   1  [[:digit:]]+  7777        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaa
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaa
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaaa
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaaa.d
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} b
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bb
-  -rw-r--r--   1  [[:digit:]]+  7777        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbb
+\\* -rw-r--r--   1  [[:digit:]]+  7777        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbb
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbb
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbbb
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbbb.d
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} c
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} cc
-  -rw-r--r--   1  [[:digit:]]+  7777        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccc
+\\* -rw-r--r--   1  [[:digit:]]+  7777        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccc
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} cccc
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccccc
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccccc.d
@@ -9181,19 +9300,19 @@ TRAILER!!!      (( filename ))
 
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} a
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aa
-  -rw-r--r--   1  7777  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaa
+\\* -rw-r--r--   1  7777  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaa
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaa
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaaa
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaaa.d
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} b
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bb
-  -rw-r--r--   1  7777  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbb
+\\* -rw-r--r--   1  7777  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbb
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbb
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbbb
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbbb.d
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} c
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} cc
-  -rw-r--r--   1  7777  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccc
+\\* -rw-r--r--   1  7777  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccc
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} cccc
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccccc
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccccc.d
@@ -9588,19 +9707,19 @@ TRAILER!!!      (( filename ))
 
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} a
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aa
-  -rw-r--r--   1  7777  3333        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaa
+\\* -rw-r--r--   1  7777  3333        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaa
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaa
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaaa
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaaa.d
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} b
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bb
-  -rw-r--r--   1  7777  3333        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbb
+\\* -rw-r--r--   1  7777  3333        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbb
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbb
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbbb
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbbb.d
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} c
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} cc
-  -rw-r--r--   1  7777  3333        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccc
+\\* -rw-r--r--   1  7777  3333        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccc
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} cccc
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccccc
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccccc.d
@@ -14954,7 +15073,7 @@ cpio-dired-prev-marked-entry is not yet implemented -- 
expect an error."
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (= where 1155))
-    (should (string-match *cdmt-odc-untouched-small-archive-buffer* 
cpio-archive-buffer-contents))
+    (should (string-match *cdmt-odc-small-archive* 
cpio-archive-buffer-contents))
     (should (string-match *cdmt-odc-untouched-small-dired-buffer* 
cpio-dired-buffer-contents))
     (should (and "Expecting an unchanged catalog. (18048)"
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))
@@ -14972,7 +15091,7 @@ cpio-dired-prev-marked-entry is not yet implemented -- 
expect an error."
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (= where 1019))
-    (should (string-match *cdmt-odc-untouched-small-archive-buffer* 
cpio-archive-buffer-contents))
+    (should (string-match *cdmt-odc-small-archive* 
cpio-archive-buffer-contents))
     (should (string-match *cdmt-odc-untouched-small-dired-buffer* 
cpio-dired-buffer-contents))
     (should (and "Expecting an unchanged catalog. (18049)"
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))
@@ -14990,7 +15109,7 @@ cpio-dired-prev-marked-entry is not yet implemented -- 
expect an error."
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (= where 774))
-    (should (string-match *cdmt-odc-untouched-small-archive-buffer* 
cpio-archive-buffer-contents))
+    (should (string-match *cdmt-odc-small-archive* 
cpio-archive-buffer-contents))
     (should (string-match *cdmt-odc-untouched-small-dired-buffer* 
cpio-dired-buffer-contents))
     (should (and "Expecting an unchanged catalog. (18050)"
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))))
@@ -15744,12 +15863,6 @@ cpio-image-dired-tag-entries is not yet implemented -- 
expect an error."
   (should-error (cpio-image-dired-tag-entries)
      :type 'error))
 
-(ert-deftest cdmt-odc-cpio-mouse-face ()
-  "Test cpio-mouse-face.
-cpio-mouse-face is not yet implemented -- expect an error."
-  (should-error (cpio-mouse-face)
-     :type 'error))
-
 
 (ert-deftest cdmt-odc-revert-buffer ()
   "Test revert-buffer.
diff --git a/cpio-dired-test.el b/cpio-dired-test.el
index 867eebe..8a98772 100644
--- a/cpio-dired-test.el
+++ b/cpio-dired-test.el
@@ -1,6 +1,6 @@
 ;; -*- coding: utf-8 -*-
 ;;; cpio-dired-test.el --- Tests of cpio-dired-mode.
-;      $Id: cpio-dired-test.el,v 1.5 2018/06/04 19:21:15 doug Exp $    
+;      $Id: cpio-dired-test.el,v 1.9 2018/06/17 07:34:12 doug Exp $    
 
 ;; COPYRIGHT
 
@@ -53,19 +53,142 @@
 ;; 
 (load (concat default-directory "cpio.el"))
 
+;; Somehow (cpio-newc-make-mtime) is getting a bad definition,
+;; so make sure we get the right one.
+;; This has only occurrd with byte compiled files,
+;; but somewhat pointed testing has avoided it.
+;; Hmmmmm.
+;; 
+;; (with-current-buffer (find-file-noselect "cpio-newc.el")
+;;   (widen)
+;;   (goto-char (point-min))
+;;   (search-forward "(defun cpio-newc-make-mtime (attrs)" (point-max))
+;;   (forward-line 1)
+;;   (eval-defun nil)
+;;   )
+
+;;;;;;;;;;;;;;;;
+;; Things to make the byte compiler happy.
+(defvar cpio-archive-buffer)
+(defvar cpio-dired-buffer)
+(defvar run-dir)
+(defvar cpio-dired-del-marker)
+(defvar cpio-dired-keep-marker-copy-str)
+(defvar cpio-dired-keep-marker-rename)
+(declare-function cpio-catalog "cpio.el")
+(declare-function cpio-contents-buffer-name "cpio.el")
+(declare-function cpio-dired-add-entry "cpio-dired.el")
+(declare-function cpio-dired-buffer-name "cpio-dired.el")
+(declare-function cpio-dired-change-marks "cpio-dired.el")
+(declare-function cpio-dired-clean-directory "cpio-dired.el")
+(declare-function cpio-dired-copy-entry-name-as-kill "cpio-dired.el")
+(declare-function cpio-dired-create-directory "cpio-dired.el")
+(declare-function cpio-dired-diff "cpio-dired.el")
+(declare-function cpio-dired-display-entry "cpio-dired.el")
+(declare-function cpio-dired-do-async-shell-command "cpio-dired.el")
+(declare-function cpio-dired-do-chgrp "cpio-dired.el")
+(declare-function cpio-dired-do-chmod "cpio-dired.el")
+(declare-function cpio-dired-do-chown "cpio-dired.el")
+(declare-function cpio-dired-do-compress "cpio-dired.el")
+(declare-function cpio-dired-do-copy "cpio-dired.el")
+(declare-function cpio-dired-do-copy-regexp "cpio-dired.el")
+(declare-function cpio-dired-do-delete "cpio-dired.el")
+(declare-function cpio-dired-do-flagged-delete "cpio-dired.el")
+(declare-function cpio-dired-do-hardlink "cpio-dired.el")
+(declare-function cpio-dired-do-hardlink-regexp "cpio-dired.el")
+(declare-function cpio-dired-do-isearch "cpio-dired.el")
+(declare-function cpio-dired-do-isearch-regexp "cpio-dired.el")
+(declare-function cpio-dired-do-kill-lines "cpio-dired.el")
+(declare-function cpio-dired-do-print "cpio-dired.el")
+(declare-function cpio-dired-do-query-replace-regexp "cpio-dired.el")
+(declare-function cpio-dired-do-redisplay "cpio-dired.el")
+(declare-function cpio-dired-do-rename "cpio-dired.el")
+(declare-function cpio-dired-do-rename-regexp "cpio-dired.el")
+(declare-function cpio-dired-do-search "cpio-dired.el")
+(declare-function cpio-dired-do-symlink "cpio-dired.el")
+(declare-function cpio-dired-do-symlink-regexp "cpio-dired.el")
+(declare-function cpio-dired-do-touch "cpio-dired.el")
+(declare-function cpio-dired-downcase "cpio-dired.el")
+(declare-function cpio-dired-extract-all "cpio-dired.el")
+(declare-function cpio-dired-extract-entries "cpio-dired.el")
+(declare-function cpio-dired-find-alternate-entry "cpio-dired.el")
+(declare-function cpio-dired-find-entry-other-window "cpio-dired.el")
+(declare-function cpio-dired-flag-auto-save-entries "cpio-dired.el")
+(declare-function cpio-dired-flag-backup-entries "cpio-dired.el")
+(declare-function cpio-dired-flag-entries-regexp "cpio-dired.el")
+(declare-function cpio-dired-flag-entry-deletion "cpio-dired.el")
+(declare-function cpio-dired-flag-garbage-entries "cpio-dired.el")
+(declare-function cpio-dired-get-entry-name "cpio-dired.el")
+(declare-function cpio-dired-goto-entry "cpio-dired.el")
+(declare-function cpio-dired-hide-all "cpio-dired.el")
+(declare-function cpio-dired-hide-details-mode "cpio-dired.el")
+(declare-function cpio-dired-hide-subdir "cpio-dired.el")
+(declare-function cpio-dired-isearch-entry-names "cpio-dired.el")
+(declare-function cpio-dired-isearch-entry-names-regexp "cpio-dired.el")
+(declare-function cpio-dired-kill "cpio-dired.el")
+(declare-function cpio-dired-mark "cpio-dired.el")
+(declare-function cpio-dired-mark-directories "cpio-dired.el")
+(declare-function cpio-dired-mark-entries-containing-regexp "cpio-dired.el")
+(declare-function cpio-dired-mark-entries-regexp "cpio-dired.el")
+(declare-function cpio-dired-mark-executables "cpio-dired.el")
+(declare-function cpio-dired-mark-subdir-entries "cpio-dired.el")
+(declare-function cpio-dired-mark-symlinks "cpio-dired.el")
+(declare-function cpio-dired-mark-this-entry "cpio-dired.el")
+(declare-function cpio-dired-mouse-find-entry-other-window "cpio-dired.el")
+(declare-function cpio-dired-move-to-first-entry "cpio-dired.el")
+(declare-function cpio-dired-next-dirline "cpio-dired.el")
+(declare-function cpio-dired-next-line "cpio-dired.el")
+(declare-function cpio-dired-next-marked-entry "cpio-dired.el")
+(declare-function cpio-dired-prev-marked-entry "cpio-dired.el")
+(declare-function cpio-dired-previous-line "cpio-dired.el")
+(declare-function cpio-dired-save-archive "cpio-dired.el")
+(declare-function cpio-dired-show-entry-type "cpio-dired.el")
+(declare-function cpio-dired-sort-toggle-or-edit "cpio-dired.el")
+(declare-function cpio-dired-toggle-marks "cpio-dired.el")
+(declare-function cpio-dired-toggle-read-only "cpio-dired.el")
+(declare-function cpio-dired-undo "cpio-dired.el")
+(declare-function cpio-dired-unmark "cpio-dired.el")
+(declare-function cpio-dired-unmark-all-entries "cpio-dired.el")
+(declare-function cpio-dired-unmark-all-marks "cpio-dired.el")
+(declare-function cpio-dired-unmark-backward "cpio-dired.el")
+(declare-function cpio-dired-up-directory "cpio-dired.el")
+(declare-function cpio-dired-upcase "cpio-dired.el")
+(declare-function cpio-dired-view-archive "cpio-dired.el")
+(declare-function cpio-dired-view-entry "cpio-dired.el")
+(declare-function cpio-epa-dired-do-decrypt "cpio-dired.el")
+(declare-function cpio-epa-dired-do-encrypt "cpio-dired.el")
+(declare-function cpio-epa-dired-do-sign "cpio-dired.el")
+(declare-function cpio-epa-dired-do-verify "cpio-dired.el")
+(declare-function cpio-image-dired-delete-tag "cpio-dired.el")
+(declare-function cpio-image-dired-dired-comment-entries "cpio-dired.el")
+(declare-function cpio-image-dired-dired-display-external "cpio-dired.el")
+(declare-function cpio-image-dired-dired-display-image "cpio-dired.el")
+(declare-function cpio-image-dired-dired-edit-comment-and-tags "cpio-dired.el")
+(declare-function cpio-image-dired-dired-toggle-marked-thumbs "cpio-dired.el")
+(declare-function cpio-image-dired-display-thumb "cpio-dired.el")
+(declare-function cpio-image-dired-display-thumbs "cpio-dired.el")
+(declare-function cpio-image-dired-display-thumbs-append "cpio-dired.el")
+(declare-function cpio-image-dired-jump-thumbnail-buffer "cpio-dired.el")
+(declare-function cpio-image-dired-mark-tagged-entries "cpio-dired.el")
+(declare-function cpio-image-dired-tag-entries "cpio-dired.el")
+(declare-function cpio-mode "cpio.el")
+(declare-function cpio-view-dired-style-buffer "cpio-dired.el")
+;; EO things for the byte compiler.
+;;;;;;;;;;;;;;;;
+
 
 ;; 
 ;; Vars
 ;; 
 
-(defvar *cdmt-small-archive* "test_data/alphabet/alphabet_small.newc.cpio"
+(defvar *cdmt-newc-small-archive* "test_data/alphabet/alphabet_small.newc.cpio"
   "A small archive used for testing.")
-(setq *cdmt-small-archive* "test_data/alphabet/alphabet_small.newc.cpio")
-(defvar *cdmt-large-archive* "test_data/alphabet/alphabet.newc.cpio"
+(setq *cdmt-newc-small-archive* "test_data/alphabet/alphabet_small.newc.cpio")
+(defvar *cdmt-newc-large-archive* "test_data/alphabet/alphabet.newc.cpio"
   "A large archive used for testing.")
-(setq *cdmt-large-archive* "test_data/alphabet/alphabet.newc.cpio")
+(setq *cdmt-newc-large-archive* "test_data/alphabet/alphabet.newc.cpio")
 
-(defvar *cdmt-untouched-small-archive* "070701 (( magic    ))
+(defvar *cdmt-newc-untouched-small-archive* "070701    (( magic    ))
 DEADBEEF       (( ino      ))
 000081A4       (( mode     ))
 000003E8       (( uid      ))
@@ -398,7 +521,7 @@ TRAILER!!!  (( filename ))
 
\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0
 [...]
 "
   "The contents of the untouched small archive.")
-(setq *cdmt-untouched-small-archive* "070701   (( magic    ))
+(setq *cdmt-newc-untouched-small-archive* "070701      (( magic    ))
 DEADBEEF       (( ino      ))
 000081A4       (( mode     ))
 000003E8       (( uid      ))
@@ -731,7 +854,7 @@ TRAILER!!!  (( filename ))
 
\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0
 [...]
 ")
 
-(defvar *cdmt-untouched-small-dired-buffer* "CPIO archive: 
alphabet_small.newc.cpio:
+(defvar *cdmt-newc-untouched-small-dired-buffer* "CPIO archive: 
alphabet_small.newc.cpio:
 
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} a
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aa
@@ -753,7 +876,7 @@ TRAILER!!!  (( filename ))
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccccc.d
 "
   "The contents of an untouched archive's dired-style buffer.")
-(setq *cdmt-untouched-small-dired-buffer* "CPIO archive: 
alphabet_small.newc.cpio:
+(setq *cdmt-newc-untouched-small-dired-buffer* "CPIO archive: 
alphabet_small.newc.cpio:
 
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} a
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aa
@@ -775,7 +898,7 @@ TRAILER!!!  (( filename ))
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccccc.d
 ")
 
-(defvar *cdmt-untouched-small-catalog* "((\"a\" .
+(defvar *cdmt-newc-untouched-small-catalog* "((\"a\" .
 \\s-+[[235538648 33188 1000 1000 1
 \\s-+(23281 65535)
 \\s-+4 253 0 0 0 2 0 \"a\"]
@@ -867,7 +990,7 @@ TRAILER!!!  (( filename ))
 \\s-+#<marker at 2077 in alphabet_small.newc.cpio> #<marker at 2197 in 
alphabet_small.newc.cpio> cpio-mode-entry-unmodified]))
 "
   "An string representing an untouched catalog.")
-(setq *cdmt-untouched-small-catalog* "((\"a\" .
+(setq *cdmt-newc-untouched-small-catalog* "((\"a\" .
 \\s-+[[235538648 33188 1000 1000 1
 \\s-+(23281 65535)
 \\s-+4 253 0 0 0 2 0 \"a\"]
@@ -959,7 +1082,7 @@ TRAILER!!! (( filename ))
 \\s-+#<marker at 2077 in alphabet_small.newc.cpio> #<marker at 2197 in 
alphabet_small.newc.cpio> cpio-mode-entry-unmodified]))
 ")
 
-(defvar *cdmt-untouched-large-archive-buffer* "070701  (( magic    ))
+(defvar *cdmt-newc-untouched-large-archive-buffer* "070701     (( magic    ))
 DEADBEEF       (( ino      ))
 000081A4       (( mode     ))
 000003E8       (( uid      ))
@@ -3708,7 +3831,7 @@ TRAILER!!!        (( filename ))
 
\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0
 [...]
 "
   "Contents of the untouched large cpio archive buffer.")
-(setq *cdmt-untouched-large-archive-buffer* "070701    (( magic    ))
+(setq *cdmt-newc-untouched-large-archive-buffer* "070701       (( magic    ))
 DEADBEEF       (( ino      ))
 000081A4       (( mode     ))
 000003E8       (( uid      ))
@@ -6456,7 +6579,7 @@ TRAILER!!!        (( filename ))
 
\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0
 [...]
 ")
 
-(defvar *cdmt-untouched-large-dired-buffer* "CPIO archive: alphabet.newc.cpio:
+(defvar *cdmt-newc-untouched-large-dired-buffer* "CPIO archive: 
alphabet.newc.cpio:
 
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} a
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aa
@@ -6532,7 +6655,7 @@ TRAILER!!!        (( filename ))
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} lllll.d
 .+"                                    ;emacs barfs if it's much longer than 
this.
   "Contents of an untouched cpio-dired directory for the large cpio archive.")
-(setq *cdmt-untouched-large-dired-buffer* "CPIO archive: alphabet.newc.cpio:
+(setq *cdmt-newc-untouched-large-dired-buffer* "CPIO archive: 
alphabet.newc.cpio:
 
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} a
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aa
@@ -6617,13 +6740,13 @@ TRAILER!!!      (( filename ))
 
 (shell-command "cd test_data/alphabet ; make newc" nil nil)
 
-(defun cdmt-reset (&optional make large)
+(defun cdmt-newc-reset (&optional make large)
   "Reset the current cpio-dired environment.
 If MAKE is non-nil, then run 'make newc' as part of the reset."
-  (let ((fname "cdmt-reset")
+  (let ((fname "cdmt-newc-reset")
        (archive-name)
-       (archive-names (list *cdmt-small-archive*
-                            *cdmt-large-archive*)))
+       (archive-names (list *cdmt-newc-small-archive*
+                            *cdmt-newc-large-archive*)))
     (cd run-dir)
     (mapc (lambda (an)
            (setq cpio-archive-buffer (find-file-noselect an nil nil))
@@ -6642,8 +6765,8 @@ If MAKE is non-nil, then run 'make newc' as part of the 
reset."
        (shell-command "cd test_data/alphabet ; make newc" nil nil))    
 
     (setq archive-name (if large 
-                          *cdmt-large-archive*
-                        *cdmt-small-archive*))
+                          *cdmt-newc-large-archive*
+                        *cdmt-newc-small-archive*))
 
     (delete-other-windows)
     (with-current-buffer (setq cpio-archive-buffer (find-file-noselect 
archive-name nil nil))
@@ -6652,19 +6775,19 @@ If MAKE is non-nil, then run 'make newc' as part of the 
reset."
       (cpio-mode))
     (setq cpio-dired-buffer (switch-to-buffer (cpio-dired-buffer-name 
archive-name)))))
 
-(defun cdmt-filter-archive-contents (archive-contents)
+(defun cdmt-newc-filter-archive-contents (archive-contents)
   "Make the given ARCHIVE-CONTENTS fully printable and readable."
-  (let ((fname "cdmt-filter-archive-contents")
+  (let ((fname "cdmt-newc-filter-archive-contents")
        (char-map (list (cons "\0" "\\0"))))
-    (setq archive-contents (cdmt-reformat-newc-headers archive-contents))
+    (setq archive-contents (cdmt-newc-reformat-newc-headers archive-contents))
     (mapc (lambda (cm)
            (let ((from (car cm))
                  (to (cdr cm)))
-             (setq archive-contents (cdmt-global-sub from to 
archive-contents))))
+             (setq archive-contents (cdmt-newc-global-sub from to 
archive-contents))))
          char-map)
     archive-contents))
 
-(defun cdmt-reformat-newc-headers (archive-contents)
+(defun cdmt-newc-reformat-newc-headers (archive-contents)
   "Reformat the cpio newc entry headers in the given ARCHIVE-CONTENTS
 So that they are human readable.
 CAVEATS: \(1\) If ARCHIVE-CONTENTS contains entries that contain entry headers,
@@ -6672,7 +6795,7 @@ then those will also be reformatted.
 \(2\) The entry names are taken to be a sequence of printable characters.
 So, if NULLs have been converted to printable characters,
 then the entry names will be incorrect."
-  (let ((fname "cdmt-reformat-newc-headers"))
+  (let ((fname "cdmt-newc-reformat-newc-headers"))
     (while (string-match *cpio-newc-header-re* archive-contents)
       (setq archive-contents (concat (substring archive-contents 0 
(match-beginning 0))
                                     (concat (match-string-no-properties 
*cpio-newc-magic-re-idx*    archive-contents) "\t(( magic    ))\n")
@@ -6694,10 +6817,10 @@ then the entry names will be incorrect."
                                     (substring archive-contents (match-end 
0)))))
     (concat archive-contents "\n")))
 
-(defun cdmt-global-sub (from-str to-str string)
+(defun cdmt-newc-global-sub (from-str to-str string)
   "Globally substitute TO-STR for FROM-STR in STRING and return the new string.
 In principal, FROM-STR can be a regular expression."
-  (let ((fname "cdmt-global-sub"))
+  (let ((fname "cdmt-newc-global-sub"))
     (while (string-match from-str string)
       (setq string (replace-match to-str nil t string 0)))
     string))
@@ -6713,11 +6836,11 @@ In principal, FROM-STR can be a regular expression."
 ;; A few keyboard macros modified those results.
 ;; The following commands were used to create the skeletons below
 
-(defun cdmt-unfinished-command ()
+(defun cdmt-newc-unfinished-command ()
   "Create a stub test for the next unfinished command."
   (interactive)
-  (let ((fname "cdmt-unfinished-command")
-       (test-declaration-string "cdmt-")
+  (let ((fname "cdmt-newc-unfinished-command")
+       (test-declaration-string "cdmt-newc-")
        (defined-command-regexp ".+) ;✓$")
        (command-name)
        (where))
@@ -6738,21 +6861,22 @@ In principal, FROM-STR can be a regular expression."
           t)
          (t nil))))
 
-(defun cdmt-all-unfinished-commands ()
+(defun cdmt-newc-all-unfinished-commands ()
   "Write stub tests for all unfinished commands following point."
   (interactive)
-  (let ((fname "cdmt-all-unfinished-commands"))
-    (while (cdmt-unfinished-command))))
+  (let ((fname "cdmt-newc-all-unfinished-commands"))
+    (while (cdmt-newc-unfinished-command))))
 
-(defun cdmt-finished-command ()
+(defun cdmt-newc-finished-command ()
   "Write a stub test for a finished command."
   (interactive)
-  (let ((fname "cdmt-finished-command")
+  (let ((fname "cdmt-newc-finished-command")
        (finished-command-regexp ") ;✓$")
-       (command-name))
+       (command-name)
+       (where))
     (cond ((re-search-forward finished-command-regexp (point-max) t)
           (beginning-of-line)
-          (re-search-forward "cdmt-" (line-end-position))
+          (re-search-forward "cdmt-newc-" (line-end-position))
           (setq where (match-end 0))
           (end-of-line)
           (backward-char 4)
@@ -6763,19 +6887,19 @@ In principal, FROM-STR can be a regular expression."
           (insert "\n")
           (insert (format "  \"Test the function M-x cpio-%s.\"\n" 
command-name))
           (insert         "  (shell-command \"cd test_data/alphabet ; make 
newc\" nil nil)\n")
-          (insert (format "  (let ((test-name \"cdmt-%s\")\n" command-name))
+          (insert (format "  (let ((test-name \"cdmt-newc-%s\")\n" 
command-name))
           (insert         "        (cpio-archive-buffer)\n")
           (insert         "        (cpio-archive-buffer-contents)\n")
           (insert         "        (cpio-dired-buffer)\n")
           (insert         "        (cpio-dired-buffer-contents)\n")
           (insert         "        )\n")
-          (insert         "    (cdmt-reset)\n")
+          (insert         "    (cdmt-newc-reset)\n")
           (insert         "\n")
           (insert (format "    (%s)\n" command-name))
           (insert         "PREPARATION\n")
           (insert         "\n")
           (insert         "    (setq cpio-archive-buffer-contents\n")
-          (insert         "          (cdmt-filter-archive-contents\n")
+          (insert         "          (cdmt-newc-filter-archive-contents\n")
           (insert         "            (with-current-buffer 
cpio-archive-buffer\n")
           (insert         "              (buffer-substring-no-properties 
(point-min) (point-max))))\n")
           (insert         "    (should (string-match \"\" 
cpio-archive-buffer-contents))\n")
@@ -6789,17 +6913,17 @@ In principal, FROM-STR can be a regular expression."
           t)
          (t nil))))
 
-(defun cdmt-all-finished-commands ()
+(defun cdmt-newc-all-finished-commands ()
   "Build stub tests for all the finished commands."
   (interactive)
-  (let ((fname "cdmt-all-finished-commands"))
-    (while (cdmt-finished-command))))
+  (let ((fname "cdmt-newc-all-finished-commands"))
+    (while (cdmt-newc-finished-command))))
 
-(defun cdmt-ediff-results ()
+(defun cdmt-newc-ediff-results ()
   "Compare the results of a (string-match) on the current line in a buffer of 
ERT results.
 The results are always presented as (string-match EXPECTED-RE ACTUAL) on that 
line."
   (interactive)
-  (let ((fname "cdmt-ediff-results")
+  (let ((fname "cdmt-newc-ediff-results")
        (expected)
        (actual)
        (start))
@@ -6838,10 +6962,10 @@ The results are always presented as (string-match 
EXPECTED-RE ACTUAL) on that li
     (ediff-buffers "actual" "expected")))
 
 
-(defun cdmt-do-cpio-id (where archive)
+(defun cdmt-newc-do-cpio-id (where archive)
   "Run cpio(1) on the given ARCHIVE and report the results.
 WHERE Should be a line number."
-  (let* ((fname "cdmt-do-cpio-id")
+  (let* ((fname "cdmt-newc-do-cpio-id")
         (buf-name "*cpio output*")
         (buf (get-buffer buf-name))
         (make-directory "qwerqwer"))
@@ -6861,26 +6985,26 @@ WHERE Should be a line number."
     (kill-buffer buf)
     (cd "..")))
 
-(defun cdmt-sweep ()
+(defun cdmt-newc-sweep ()
   "Sweep the cpio-dired-test.el buffer and make changes
 to help make tests pass correctly."
   (interactive)
-  (let ((fname "cdmt-sweep"))
-    (cdmt-sweep-ids)
-    (cdmt-sweep-times)))
+  (let ((fname "cdmt-newc-sweep"))
+    (cdmt-newc-sweep-ids)
+    (cdmt-newc-sweep-times)))
 
-(defun cdmt-sweep-ids ()
+(defun cdmt-newc-sweep-ids ()
   "Replace UIDs and GIDs = [[:digit:]]+ by a better RE."
-  (let ((fname "cdmt-sweep-ids"))
+  (let ((fname "cdmt-newc-sweep-ids"))
     (save-excursion
       (save-restriction
        (goto-char (point-min))
        (while (re-search-forward "\\s-+\\(1000\\)\\s-" (point-max) t)
          (replace-match "[[:digit:]]+" 'fixed-case 'literal nil 1))))))
 
-(defun cdmt-sweep-times ()
+(defun cdmt-newc-sweep-times ()
   "Replace times (date-times) with a better RE."
-  (let ((fname "cdmt-sweep-times"))
+  (let ((fname "cdmt-newc-sweep-times"))
     (save-excursion 
       (save-restriction
        (goto-char (point-min))
@@ -6941,9 +7065,9 @@ to help make tests pass correctly."
     (dired-next-line 1)
     (other-window 2)))
 
-(defun cdmt-sweep-catalog ()
+(defun cdmt-newc-sweep-catalog ()
   "Clean up a copy of the cpio catalog,
-as presented in an 'actual' buffer (see `cdmt-ediff-results')
+as presented in an 'actual' buffer (see `cdmt-newc-ediff-results')
 for use in a string-match-p."
   ;; If this were written in good LISP,
   ;; then it would be a (mapcar)
@@ -6951,7 +7075,7 @@ for use in a string-match-p."
   ;; with a (replace-match).
   ;; However, I think the comments are helpful.
   (interactive)
-  (let ((fname "cdmt-sweep-catalog"))
+  (let ((fname "cdmt-newc-sweep-catalog"))
     ;; Opening [.
     (goto-char (point-min))
     (while (re-search-forward "\\[" (point-max) t)
@@ -6992,11 +7116,11 @@ for use in a string-match-p."
     ;; Grab the whole buffer.
     (copy-region-as-kill (point-min) (point-max))))
 
-(defun cdmt-test-save (&optional large)
+(defun cdmt-newc-test-save (&optional large)
   "A generic test to run at the end of every test
 to check that the saved archive seems sane."
   (cd run-dir)
-  (let* ((fname "cdmt-test-save")
+  (let* ((fname "cdmt-newc-test-save")
         (alphabet-dir (concat default-directory "test_data/alphabet"))
         (test-buffer-dir (concat alphabet-dir "/asdfasdf"))
         (test-buffer)
@@ -7010,7 +7134,7 @@ to check that the saved archive seems sane."
     (if (file-exists-p test-buffer-dir)
        (call-process "rm" nil nil nil "-rf" test-buffer-dir))
     (if (file-exists-p test-buffer-dir)
-       (error "%s(): Removing %s failed."))
+       (error "%s(): Removing %s failed." fname test-buffer-dir))
     (with-current-buffer cpio-archive-buffer
       (cpio-dired-save-archive))
     (make-directory test-buffer-dir 'parents)
@@ -7030,21 +7154,21 @@ to check that the saved archive seems sane."
 ;; Tests
 ;; 
 
-;; N.B. cdmt- = cpio-dired-mode-test-
+;; N.B. cdmt-newc- = cpio-dired-mode-test-
 
 (defvar run-dir default-directory)
 
 (custom-set-variables (list 'cpio-try-names nil))
 
 ;; All tests use M-x cpio-dired-kill.
-(ert-deftest cdmt-cpio-dired-kill () ;✓
+(ert-deftest cdmt-newc-cpio-dired-kill () ;✓
   "Test the function of M-x cpio-dired-kill."
-  (let ((test-name "cdmt-cpio-dired-kill")
+  (let ((test-name "cdmt-newc-cpio-dired-kill")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
         (cpio-dired-buffer-contents))
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
 
     (cpio-dired-kill)
 
@@ -7053,63 +7177,57 @@ to check that the saved archive seems sane."
     (should (and "Archive buffer should not be live."
                 (not (buffer-live-p cpio-archive-buffer))))))
 
-(ert-deftest cdmt-cpio-dired-do-isearch ()
+(ert-deftest cdmt-newc-cpio-dired-do-isearch ()
   "Test cpio-dired-do-isearch.
 cpio-dired-do-isearch is not yet implemented -- expect an error."
   (should-error (cpio-dired-do-isearch)
                :type 'error))
 
-(ert-deftest cdmt-cpio-dired-do-isearch-regexp ()
+(ert-deftest cdmt-newc-cpio-dired-do-isearch-regexp ()
   "Test cpio-dired-do-isearch-regexp.
 cpio-dired-do-isearch-regexp is not yet implemented -- expect an error."
   (should-error (cpio-dired-do-isearch-regexp)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-isearch-entry-names ()
+(ert-deftest cdmt-newc-cpio-dired-isearch-entry-names ()
   "Test cpio-dired-isearch-entry-names.
 cpio-dired-isearch-entry-names is not yet implemented -- expect an error."
   (should-error (cpio-dired-isearch-entry-names)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-isearch-entry-names-regexp ()
+(ert-deftest cdmt-newc-cpio-dired-isearch-entry-names-regexp ()
   "Test cpio-dired-isearch-entry-names-regexp.
 cpio-dired-isearch-entry-names-regexp is not yet implemented -- expect an 
error."
   (should-error (cpio-dired-isearch-entry-names-regexp)
      :type 'error))
 
 
-(ert-deftest cdmt-cpio-describe-mode ()
-  "Test cpio-describe-mode.
-cpio-describe-mode is not yet implemented -- expect an error."
-  (should-error (cpio-describe-mode)
-     :type 'error))
-
-(ert-deftest cdmt-cpio-dired-add-entry ()
+(ert-deftest cdmt-newc-cpio-dired-add-entry ()
   "Test cpio-dired-add-entry.
 cpio-dired-add-entry is not yet implemented -- expect an error."
   (should-error (cpio-dired-add-entry)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-change-marks ()
+(ert-deftest cdmt-newc-cpio-dired-change-marks ()
   "Test cpio-dired-change-marks.
 cpio-dired-change-marks is not yet implemented -- expect an error."
   (should-error (cpio-dired-change-marks)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-clean-directory ()
+(ert-deftest cdmt-newc-cpio-dired-clean-directory ()
   "Test cpio-dired-clean-directory.
 cpio-dired-clean-directory is not yet implemented -- expect an error."
   (should-error (cpio-dired-clean-directory)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-copy-entry-name-as-kill ()
+(ert-deftest cdmt-newc-cpio-dired-copy-entry-name-as-kill ()
   (should-error (cpio-dired-copy-entry-name-as-kill 1)
                :type 'error))
   
-(ert-deftest NOT-YET-cdmt-cpio-dired-copy-entry-name-as-kill ()
+(ert-deftest NOT-YET-cdmt-newc-cpio-dired-copy-entry-name-as-kill ()
   "Test cpio-dired-copy-entry-name-as-kill.
 cpio-dired-copy-entry-name-as-kill is not yet implemented -- expect an error."
-  (let ((test-name "cdmt-cpio-dired-copy-entry-name-as-kill")
+  (let ((test-name "cdmt-newc-cpio-dired-copy-entry-name-as-kill")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
@@ -7123,7 +7241,7 @@ cpio-dired-copy-entry-name-as-kill is not yet implemented 
-- expect an error."
        (kill-ring-before)
        (entry-names)
        (interprogram-paste-function nil))
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
     
     (progn (setq current-kill-before (current-kill 0 'do-not-move))
           (cpio-dired-next-line 2)
@@ -7151,15 +7269,15 @@ cpio-dired-copy-entry-name-as-kill is not yet 
implemented -- expect an error."
     ;; Use (equal) here because the kill ring could have been empty.
     (should (equal (current-kill 0) current-kill-before))))
 
-(ert-deftest cdmt-cpio-dired-diff ()
+(ert-deftest cdmt-newc-cpio-dired-diff ()
   "Test cpio-dired-diff) ;.
 cpio-dired-diff) ; is not yet implemented -- expect an error."
   (should-error (cpio-dired-diff) ;)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-display-entry () ;✓
+(ert-deftest cdmt-newc-cpio-dired-display-entry () ;✓
   "Test the function of M-x cpio-dired-display-entry."
-  (let ((test-name "cdmt-cpio-dired-display-entry")
+  (let ((test-name "cdmt-newc-cpio-dired-display-entry")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
@@ -7171,9 +7289,9 @@ cpio-dired-diff) ; is not yet implemented -- expect an 
error."
        (cpio-catalog-contents-after)
        (cpio-contents-window)
        (entry-name))
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
 
-    (set-buffer (setq cpio-dired-buffer (get-buffer (cpio-dired-buffer-name 
*cdmt-small-archive*))))
+    (set-buffer (setq cpio-dired-buffer (get-buffer (cpio-dired-buffer-name 
*cdmt-newc-small-archive*))))
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (setq entry-name "aaa")
@@ -7190,7 +7308,7 @@ cpio-dired-diff) ; is not yet implemented -- expect an 
error."
                                                                                
 (point-max))))
             (setq cpio-contents-window (get-buffer-window 
cpio-contents-buffer))
             (setq cpio-archive-buffer-contents
-                  (cdmt-filter-archive-contents
+                  (cdmt-newc-filter-archive-contents
                    (with-current-buffer cpio-archive-buffer
                      (buffer-substring-no-properties (point-min) 
(point-max)))))
             (setq cpio-dired-buffer-contents
@@ -7200,9 +7318,9 @@ cpio-dired-diff) ; is not yet implemented -- expect an 
error."
 
     (with-current-buffer cpio-dired-buffer
       (should (and "Viewing an entry should not change the archive buffer."
-                  (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                  (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
       (should (and "Viewing an entry should not change the dired-style buffer."
-                  (string-match *cdmt-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
+                  (string-match *cdmt-newc-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
       (should (and "The contents buffer should not be null."
                   (not (null cpio-contents-buffer))))
       (should (and "The contents buffer should be live."
@@ -7214,7 +7332,7 @@ cpio-dired-diff) ; is not yet implemented -- expect an 
error."
       (should (and "Expecting no change to the catalog."
                   (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after))))
 
-    (cdmt-reset)
+    (cdmt-newc-reset)
     
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (setq entry-name "ccc")
@@ -7229,7 +7347,7 @@ cpio-dired-diff) ; is not yet implemented -- expect an 
error."
                                                                                
 (point-max))))
             (setq cpio-contents-window (get-buffer-window 
cpio-contents-buffer))
             (setq cpio-archive-buffer-contents
-                  (cdmt-filter-archive-contents
+                  (cdmt-newc-filter-archive-contents
                    (with-current-buffer cpio-archive-buffer
                      (buffer-substring-no-properties (point-min) 
(point-max)))))
             (setq cpio-dired-buffer-contents
@@ -7239,9 +7357,9 @@ cpio-dired-diff) ; is not yet implemented -- expect an 
error."
 
     (with-current-buffer cpio-dired-buffer
       (should (and "Checking the archive buffer."
-                  (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                  (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
       (should (and "Checking the dired-style buffer."
-                  (string-match *cdmt-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
+                  (string-match *cdmt-newc-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
       (should (not (null cpio-contents-buffer)))
       (should (buffer-live-p cpio-contents-buffer))
       (should (string-equal cpio-contents-buffer-string "\nccc\n\n"))
@@ -7249,29 +7367,29 @@ cpio-dired-diff) ; is not yet implemented -- expect an 
error."
       (should (and "Expecting no change to the catalog."
                   (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after))))))
 
-(ert-deftest cdmt-cpio-dired-do-async-shell-command ()
+(ert-deftest cdmt-newc-cpio-dired-do-async-shell-command ()
   "Test cpio-dired-do-async-shell-command) ;.
 cpio-dired-do-async-shell-command) ; is not yet implemented -- expect an 
error."
   (should-error (cpio-dired-do-async-shell-command)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-do-chgrp () ;✓
+(ert-deftest cdmt-newc-cpio-dired-do-chgrp () ;✓
   "Test the function of M-x cpio-dired-do-chgrp."
-  (let ((test-name "cdmt-cpio-dired-do-chgrp")
+  (let ((test-name "cdmt-newc-cpio-dired-do-chgrp")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
         (cpio-dired-buffer-contents)
        (cpio-catalog-contents-before)
        (cpio-catalog-contents-after))
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-move-to-first-entry)
           (setq unread-command-events (listify-key-sequence "9999\n"))
           (cpio-dired-do-chgrp 1)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -7279,7 +7397,7 @@ cpio-dired-do-async-shell-command) ; is not yet 
implemented -- expect an error."
                   (buffer-substring-no-properties (point-min) (point-max))))
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
     (should (and "Expecting an unchanged archive. (8814)"
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting 'a' to have group 9999."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
 
@@ -7395,13 +7513,13 @@ cpio-dired-do-async-shell-command) ; is not yet 
implemented -- expect an error."
    #<marker at 2077 in alphabet_small\.newc\.cpio> #<marker at 2197 in 
alphabet_small\.newc\.cpio> cpio-mode-entry-unmodified\]))
 " cpio-catalog-contents-after)))
 
-    (cdmt-reset)
+    (cdmt-newc-reset)
     
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (setq unread-command-events (listify-key-sequence "8888\n"))
           (cpio-dired-do-chgrp 4)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -7410,7 +7528,7 @@ cpio-dired-do-async-shell-command) ; is not yet 
implemented -- expect an error."
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "The archive buffer doesn't change until saving."
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting the first 4 entries to have group 8888."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
 
@@ -7526,14 +7644,14 @@ cpio-dired-do-async-shell-command) ; is not yet 
implemented -- expect an error."
    #<marker at 2077 in alphabet_small\.newc\.cpio> #<marker at 2197 in 
alphabet_small\.newc\.cpio> cpio-mode-entry-unmodified\]))
 " cpio-catalog-contents-after)))
 
-    (cdmt-reset)
+    (cdmt-newc-reset)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-mark-entries-regexp "\\`...\\'")
           (setq unread-command-events (listify-key-sequence "7777\n"))
           (cpio-dired-do-chgrp 1)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -7542,25 +7660,25 @@ cpio-dired-do-async-shell-command) ; is not yet 
implemented -- expect an error."
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "The archive is not changed until saved. (8894)"
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting \`...\' to have group 7777."
                  (string-match "CPIO archive: alphabet_small.newc.cpio:
 
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} a
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aa
-  -rw-r--r--   1  [[:digit:]]+  7777        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaa
+\\* -rw-r--r--   1  [[:digit:]]+  7777        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaa
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaa
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaaa
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaaa.d
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} b
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bb
-  -rw-r--r--   1  [[:digit:]]+  7777        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbb
+\\* -rw-r--r--   1  [[:digit:]]+  7777        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbb
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbb
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbbb
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbbb.d
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} c
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} cc
-  -rw-r--r--   1  [[:digit:]]+  7777        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccc
+\\* -rw-r--r--   1  [[:digit:]]+  7777        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccc
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} cccc
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccccc
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccccc.d
@@ -7658,9 +7776,9 @@ cpio-dired-do-async-shell-command) ; is not yet 
implemented -- expect an error."
 \\s-+#<marker at 2077 in alphabet_small\.newc\.cpio> #<marker at 2197 in 
alphabet_small\.newc\.cpio> cpio-mode-entry-unmodified\]))
 " cpio-catalog-contents-after)))
     
-    (cdmt-test-save)))
+    (cdmt-newc-test-save)))
 
-(ert-deftest cdmt-cpio-dired-do-chmod ()
+(ert-deftest cdmt-newc-cpio-dired-do-chmod ()
   "Test cpio-dired-do-chmod."
   (let ((test-name "cmt-cpio-dired-do-chmod")
         (cpio-archive-buffer)
@@ -7670,13 +7788,13 @@ cpio-dired-do-async-shell-command) ; is not yet 
implemented -- expect an error."
        (cpio-catalog-contents-before)
        (cpio-catalog-contents-after))
     
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
     
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (setq unread-command-events (listify-key-sequence "0755\n"))
           (cpio-dired-do-chmod 1)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -8137,7 +8255,7 @@ TRAILER!!!        (( filename ))
           (setq unread-command-events (listify-key-sequence "0600\n"))
           (cpio-dired-do-chmod 4)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -8171,7 +8289,7 @@ TRAILER!!!        (( filename ))
 
     (should (and "Expecting an unchanged archive buffer."
                 "The archive is not modified until saving."
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting aaa, aaaa, aaaaa to have mode 0100600 (33152)."
                 "Expecting aaaaa.d to have mode 040600 (16768)."
 
@@ -8272,7 +8390,7 @@ TRAILER!!!        (( filename ))
           (setq unread-command-events (listify-key-sequence "0660\n"))
           (cpio-dired-do-chmod)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -8304,7 +8422,7 @@ TRAILER!!!        (( filename ))
 " cpio-dired-buffer-contents)))
 
     (should (and "Expecting an untouched archive."
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
 
     (should (and "Expecting ... to have mode 0100660 (33200)."
                 (string-match "((\"a\" \.
@@ -8402,7 +8520,7 @@ TRAILER!!!        (( filename ))
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-save-archive)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -8869,11 +8987,11 @@ TRAILER!!!      (( filename ))
 \\s-+#<marker at 2077 in alphabet_small\.newc\.cpio> #<marker at 2197 in 
alphabet_small\.newc\.cpio> cpio-mode-entry-unmodified\]))
 " cpio-catalog-contents-after)))
 
-    (cdmt-test-save)))
+    (cdmt-newc-test-save)))
 
-(ert-deftest cdmt-cpio-dired-do-chown () ;✓
+(ert-deftest cdmt-newc-cpio-dired-do-chown () ;✓
   "Test the function of M-x cpio-do-chown."
-  (let ((test-name "cdmt-cpio-dired-do-chown")
+  (let ((test-name "cdmt-newc-cpio-dired-do-chown")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
@@ -8881,13 +8999,13 @@ TRAILER!!!      (( filename ))
        (cpio-catalog-contents-before)
        (cpio-catalog-contents-after))
     
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
     
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (setq unread-command-events (listify-key-sequence "9999\n"))
           (cpio-dired-do-chown 1)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -8896,7 +9014,7 @@ TRAILER!!!        (( filename ))
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
     
     (should (and "The archive buffer is not modified until saved. (10741)"
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
 
     (should (and "Expecting a cpio-dired buffer with the owner of 'a' being 
9999."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
@@ -9013,14 +9131,14 @@ TRAILER!!!      (( filename ))
 \\s-+#<marker at 2077 in alphabet_small\.newc\.cpio> #<marker at 2197 in 
alphabet_small\.newc\.cpio> cpio-mode-entry-unmodified\]))
 " cpio-catalog-contents-after)))
 
-    (cdmt-reset)
+    (cdmt-newc-reset)
     
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (dired-next-line 2)
           (setq unread-command-events (listify-key-sequence "8888\n"))
           (cpio-dired-do-chown 4)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -9029,7 +9147,7 @@ TRAILER!!!        (( filename ))
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "The archive buffer is not modified until saved. (11111)"
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
 
     (should (and "Expecting 4 entries with owner 8888."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
@@ -9146,14 +9264,14 @@ TRAILER!!!      (( filename ))
    #<marker at 2077 in alphabet_small\.newc\.cpio> #<marker at 2197 in 
alphabet_small\.newc\.cpio> cpio-mode-entry-unmodified\]))
 " cpio-catalog-contents-after)))
 
-    (cdmt-reset)
+    (cdmt-newc-reset)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-mark-entries-regexp "\\`...\\'")
           (setq unread-command-events (listify-key-sequence "7777\n"))
           (cpio-dired-do-chown 1)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -9161,26 +9279,26 @@ TRAILER!!!      (( filename ))
                   (buffer-substring-no-properties (point-min) (point-max))))
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
     (should (and "The archive buffer is not modified until saved. (10818)"
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     
     (should (and "Expecting \`...\' to be owned by 7777."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
 
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} a
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aa
-  -rw-r--r--   1  7777  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaa
+\\* -rw-r--r--   1  7777  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaa
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaa
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaaa
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaaa.d
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} b
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bb
-  -rw-r--r--   1  7777  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbb
+\\* -rw-r--r--   1  7777  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbb
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbb
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbbb
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbbb.d
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} c
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} cc
-  -rw-r--r--   1  7777  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccc
+\\* -rw-r--r--   1  7777  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccc
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} cccc
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccccc
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccccc.d
@@ -9278,24 +9396,24 @@ TRAILER!!!      (( filename ))
 \\s-+#<marker at 2077 in alphabet_small\.newc\.cpio> #<marker at 2197 in 
alphabet_small\.newc\.cpio> cpio-mode-entry-unmodified\]))
 " cpio-catalog-contents-after)))
     
-    (cdmt-test-save)))
+    (cdmt-newc-test-save)))
 
-(ert-deftest cdmt-cpio-dired-do-chown-1 ()
+(ert-deftest cdmt-newc-cpio-dired-do-chown-1 ()
   "Test the change-owner-user function of M-x cpio-dired-do-chown."
-  (let ((test-name "cdmt-cpio-dired-do-chown")
+  (let ((test-name "cdmt-newc-cpio-dired-do-chown")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
         (cpio-dired-buffer-contents)
        (cpio-catalog-contents-before)
        (cpio-catalog-contents-after))
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (setq unread-command-events (listify-key-sequence "9999:1111\n"))
           (cpio-dired-do-chown 1)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -9304,7 +9422,7 @@ TRAILER!!!        (( filename ))
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "Expecting an untouched archive. (11010)"
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
 
     (should (and "Expecting entry 'a' to have owner 9999 and group 1111."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
@@ -9421,14 +9539,14 @@ TRAILER!!!      (( filename ))
 \\s-+#<marker at 2077 in alphabet_small\.newc\.cpio> #<marker at 2197 in 
alphabet_small\.newc\.cpio> cpio-mode-entry-unmodified\]))
 " cpio-catalog-contents-after)))
 
-    (cdmt-reset)
+    (cdmt-newc-reset)
     
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (dired-next-line 2)
           (setq unread-command-events (listify-key-sequence "8888:2222\n"))
           (cpio-dired-do-chown 4)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -9437,7 +9555,7 @@ TRAILER!!!        (( filename ))
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "Expecting an untouched archive. (9918)"
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting 4 entries with owner 8888 and group 2222."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
 
@@ -9553,14 +9671,14 @@ TRAILER!!!      (( filename ))
 \\s-+#<marker at 2077 in alphabet_small\.newc\.cpio> #<marker at 2197 in 
alphabet_small\.newc\.cpio> cpio-mode-entry-unmodified\]))
 " cpio-catalog-contents-after)))
 
-    (cdmt-reset)
+    (cdmt-newc-reset)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-mark-entries-regexp "\\`...\\'")
           (setq unread-command-events (listify-key-sequence "7777:3333\n"))
           (cpio-dired-do-chown 1)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -9569,25 +9687,25 @@ TRAILER!!!      (( filename ))
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "Expecting an untouched archive. (9958)"
-                (string-equal *cdmt-untouched-small-archive*  
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive*  
cpio-archive-buffer-contents)))
     (should (and "Expecting \`...\' to have owner 7777 and group 3333."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
 
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} a
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aa
-  -rw-r--r--   1  7777  3333        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaa
+\\* -rw-r--r--   1  7777  3333        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaa
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaa
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaaa
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} aaaaa.d
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} b
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bb
-  -rw-r--r--   1  7777  3333        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbb
+\\* -rw-r--r--   1  7777  3333        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbb
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbb
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbbb
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} bbbbb.d
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} c
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} cc
-  -rw-r--r--   1  7777  3333        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccc
+\\* -rw-r--r--   1  7777  3333        6 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccc
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} cccc
   -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        8 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccccc
   drwxr-xr-x   2  [[:digit:]]+  [[:digit:]]+        0 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} ccccc.d
@@ -9685,17 +9803,17 @@ TRAILER!!!      (( filename ))
 \\s-+#<marker at 2077 in alphabet_small\.newc\.cpio> #<marker at 2197 in 
alphabet_small\.newc\.cpio> cpio-mode-entry-unmodified\]))
 " cpio-catalog-contents-after)))
 
-    (cdmt-test-save)))
+    (cdmt-newc-test-save)))
 
-(ert-deftest cdmt-cpio-dired-do-compress ()
+(ert-deftest cdmt-newc-cpio-dired-do-compress ()
   "Test cpio-dired-do-compress.
 cpio-dired-do-compress is not yet implemented -- expect an error."
   (should-error (cpio-dired-do-compress)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-do-copy-0 () ;✓
+(ert-deftest cdmt-newc-cpio-dired-do-copy-0 () ;✓
   "Test the function of M-x cpio-do-copy."
-  (let ((test-name "cdmt-cpio-dired-do-copy")
+  (let ((test-name "cdmt-newc-cpio-dired-do-copy")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
@@ -9703,13 +9821,13 @@ cpio-dired-do-compress is not yet implemented -- expect 
an error."
        (cpio-catalog-contents-before)
        (cpio-catalog-contents-after))
 
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (setq unread-command-events (listify-key-sequence "d\n"))
           (cpio-dired-do-copy 1)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -10173,12 +10291,12 @@ C -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|de
 \\s-+#<marker at 2197 in alphabet_small\.newc\.cpio> #<marker at 2309 in 
alphabet_small\.newc\.cpio> cpio-mode-entry-unmodified\]))
 " cpio-catalog-contents-after)))
 
-    (cdmt-test-save)))
+    (cdmt-newc-test-save)))
 
-(ert-deftest cdmt-cpio-dired-do-copy-1 () ;✓
+(ert-deftest cdmt-newc-cpio-dired-do-copy-1 () ;✓
   "Test the function of M-x cpio-do-copy."
   :expected-result :failed
-  (let ((test-name "cdmt-cpio-dired-do-copy")
+  (let ((test-name "cdmt-newc-cpio-dired-do-copy")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
@@ -10186,14 +10304,14 @@ C -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|de
        (cpio-catalog-contents-before)
        (cpio-catalog-contents-after))
 
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (dired-next-line 2)
           (setq unread-command-events (listify-key-sequence "newDirectory\n"))
           (cpio-dired-do-copy 4)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -10239,11 +10357,11 @@ C -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|de
 " cpio-dired-buffer-contents)))
     (should (string-match "uNlIkElY" cpio-catalog-contents-after))
 
-    (cdmt-test-save)))
+    (cdmt-newc-test-save)))
 
-(ert-deftest cdmt-cpio-dired-do-copy-2 () ;✓
+(ert-deftest cdmt-newc-cpio-dired-do-copy-2 () ;✓
   "Test the function of M-x cpio-do-copy operating on multiple entries."
-  (let ((test-name "cdmt-cpio-dired-do-copy")
+  (let ((test-name "cdmt-newc-cpio-dired-do-copy")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
@@ -10251,13 +10369,13 @@ C -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|de
        (cpio-catalog-contents-before)
        (cpio-catalog-contents-after))
 
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
 
     (progn (cpio-dired-mark-entries-regexp "\\`...\\'")
           (setq unread-command-events (listify-key-sequence 
"newDirectory-1\n"))
           (cpio-dired-do-copy 1)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -10770,11 +10888,11 @@ C -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|de
 \\s-+#<marker at 2477 in alphabet_small\.newc\.cpio> #<marker at 2609 in 
alphabet_small\.newc\.cpio> cpio-mode-entry-unmodified\]))
 " cpio-catalog-contents-after)))
 
-    (cdmt-test-save)))
+    (cdmt-newc-test-save)))
 
-(ert-deftest cdmt-cpio-dired-do-copy-3 () ;✓
+(ert-deftest cdmt-newc-cpio-dired-do-copy-3 () ;✓
   "Test the function of M-x cpio-do-copy."
-  (let ((test-name "cdmt-cpio-dired-do-copy")
+  (let ((test-name "cdmt-newc-cpio-dired-do-copy")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
@@ -10782,14 +10900,14 @@ C -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|de
        (cpio-catalog-contents-before)
        (cpio-catalog-contents-after))
 
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-mark-entries-regexp "...")
           (setq unread-command-events (listify-key-sequence 
"newDirectory-3\n"))
           (cpio-dired-do-copy 1)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -11512,29 +11630,29 @@ C -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        6 
\\(?:a\\(?:pr\\|ug\\)\\|de
 \\s-+#<marker at 3725 in alphabet_small\.newc\.cpio> #<marker at 3857 in 
alphabet_small\.newc\.cpio> cpio-mode-entry-unmodified\]))
 " cpio-catalog-contents-after)))
 
-    (cdmt-test-save)))
+    (cdmt-newc-test-save)))
 
-(ert-deftest cdmt-cpio-dired-do-copy-regexp ()
+(ert-deftest cdmt-newc-cpio-dired-do-copy-regexp ()
   "Test cpio-dired-do-copy-regexp.
 cpio-dired-do-copy-regexp is not yet implemented -- expect an error."
   (should-error (cpio-dired-do-copy-regexp)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-do-delete () ;✓
+(ert-deftest cdmt-newc-cpio-dired-do-delete () ;✓
   "Test the function of M-x cpio-dired-do-delete."
-  (let ((test-name "cdmt-cpio-dired-do-delete")
+  (let ((test-name "cdmt-newc-cpio-dired-do-delete")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
         (cpio-dired-buffer-contents)
        (cpio-catalog-contents-before)
        (cpio-catalog-contents-after))
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-do-delete 1)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -11970,7 +12088,7 @@ TRAILER!!!      (( filename ))
           (dired-next-line 2)
           (cpio-dired-do-delete 4)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -12315,7 +12433,7 @@ TRAILER!!!      (( filename ))
           (setq unread-command-events (listify-key-sequence "\n"))
           (cpio-dired-do-delete 1)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -12582,52 +12700,52 @@ TRAILER!!!    (( filename ))
 \\s-+#<marker at 1105 in alphabet_small\.newc\.cpio> #<marker at 1225 in 
alphabet_small\.newc\.cpio> cpio-mode-entry-unmodified\]))
 " cpio-catalog-contents-after)))
 
-    (cdmt-test-save)))
+    (cdmt-newc-test-save)))
 
-(ert-deftest cdmt-cpio-dired-do-flagged-delete ()
+(ert-deftest cdmt-newc-cpio-dired-do-flagged-delete ()
   "Test cpio-dired-do-flagged-delete.
 cpio-dired-do-flagged-delete is not yet implemented -- expect an error."
   (should-error (cpio-dired-do-flagged-delete)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-do-hardlink ()
+(ert-deftest cdmt-newc-cpio-dired-do-hardlink ()
   "Test cpio-dired-do-hardlink.
 cpio-dired-do-hardlink is not yet implemented -- expect an error."
   (should-error (cpio-dired-do-hardlink)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-do-hardlink-regexp ()
+(ert-deftest cdmt-newc-cpio-dired-do-hardlink-regexp ()
   "Test cpio-dired-do-hardlink-regexp.
 cpio-dired-do-hardlink-regexp is not yet implemented -- expect an error."
   (should-error (cpio-dired-do-hardlink-regexp)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-do-kill-lines ()
+(ert-deftest cdmt-newc-cpio-dired-do-kill-lines ()
   "Test cpio-dired-do-kill-lines.
 cpio-dired-do-kill-lines is not yet implemented -- expect an error."
   (should-error (cpio-dired-do-kill-lines)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-do-print ()
+(ert-deftest cdmt-newc-cpio-dired-do-print ()
   "Test cpio-dired-do-print.
 cpio-dired-do-print is not yet implemented -- expect an error."
   (should-error (cpio-dired-do-print)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-do-query-replace-regexp ()
+(ert-deftest cdmt-newc-cpio-dired-do-query-replace-regexp ()
   "Test cpio-dired-do-query-replace-regexp.
 cpio-dired-do-query-replace-regexp is not yet implemented -- expect an error."
   (should-error (cpio-dired-do-query-replace-regexp)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-do-redisplay ()
+(ert-deftest cdmt-newc-cpio-dired-do-redisplay ()
   "Test cpio-dired-do-redisplay.
 cpio-dired-do-redisplay is not yet implemented -- expect an error."
   (should-error (cpio-dired-do-redisplay)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-do-rename () ;✓
-  (let ((test-name "cdmt-cpio-dired-do-rename")
+(ert-deftest cdmt-newc-cpio-dired-do-rename () ;✓
+  (let ((test-name "cdmt-newc-cpio-dired-do-rename")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
@@ -12635,13 +12753,13 @@ cpio-dired-do-redisplay is not yet implemented -- 
expect an error."
        (cpio-catalog-contents-before)
        (cpio-catalog-contents-after))
 
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
     
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (setq unread-command-events (listify-key-sequence "d\n"))
           (cpio-dired-do-rename 1)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -12651,7 +12769,7 @@ cpio-dired-do-redisplay is not yet implemented -- 
expect an error."
 
     (should (and "Expecting an untouched archive."
                 "The archive gets updated on save."
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
 
     (should (and "Expecting a dired buffer with no entry »a«, but an entry 
»d«."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
@@ -12774,7 +12892,7 @@ cpio-dired-do-redisplay is not yet implemented -- 
expect an error."
           (setq unread-command-events (listify-key-sequence "newDirectory\n"))
           (cpio-dired-do-rename 4)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -12783,7 +12901,7 @@ cpio-dired-do-redisplay is not yet implemented -- 
expect an error."
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "Expecting an as yet unchanged archive."
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     
     (should (and "Expecting a dired style buffer with entries »aaaa«, »aaaaa«, 
»aaaaa.d« and »b« moved to »newDirectory«."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
@@ -12906,7 +13024,7 @@ cpio-dired-do-redisplay is not yet implemented -- 
expect an error."
           (setq unread-command-events (listify-key-sequence 
"newDirectory-1\n"))
           (cpio-dired-do-rename 1)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -12915,7 +13033,7 @@ cpio-dired-do-redisplay is not yet implemented -- 
expect an error."
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "Expecting an as yet unchanged archive."
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
 
     (should (and "Expecting a dired buffer with \`...\' all under 
newDirectory-1."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
@@ -13032,76 +13150,80 @@ cpio-dired-do-redisplay is not yet implemented -- 
expect an error."
 \\s-+#<marker at 2077 in alphabet_small\.newc\.cpio> #<marker at 2197 in 
alphabet_small\.newc\.cpio> cpio-mode-entry-unmodified\]))
 " cpio-catalog-contents-after)))
 
-    (cdmt-test-save)))
+    (cdmt-newc-test-save)))
 
-(ert-deftest cdmt-cpio-dired-do-rename-regexp ()
+(ert-deftest cdmt-newc-cpio-dired-do-rename-regexp ()
   "Test cpio-dired-do-rename-regexp.
 cpio-dired-do-rename-regexp is not yet implemented -- expect an error."
   (should-error (cpio-dired-do-rename-regexp)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-do-search () ;HEREHERE ()
+(ert-deftest cdmt-newc-cpio-dired-do-search () ;HEREHERE ()
   "Test cpio-dired-do-search) ;HEREHERE.
 cpio-dired-do-search) ;HEREHERE is not yet implemented -- expect an error."
   (should-error (cpio-dired-do-search)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-do-symlink ()
+(ert-deftest cdmt-newc-cpio-dired-do-symlink ()
   "Test cpio-dired-do-symlink.
 cpio-dired-do-symlink is not yet implemented -- expect an error."
   (should-error (cpio-dired-do-symlink)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-do-symlink-regexp ()
+(ert-deftest cdmt-newc-cpio-dired-do-symlink-regexp ()
   "Test cpio-dired-do-symlink-regexp.
 cpio-dired-do-symlink-regexp is not yet implemented -- expect an error."
   (should-error (cpio-dired-do-symlink-regexp)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-do-touch ()
+(ert-deftest cdmt-newc-cpio-dired-do-touch ()
   "Test cpio-dired-do-touch.
 cpio-dired-do-touch is not yet implemented -- expect an error."
   (should-error (cpio-dired-do-touch)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-downcase ()
+(ert-deftest cdmt-newc-cpio-dired-downcase ()
   "Test cpio-dired-downcase.
 cpio-dired-downcase is not yet implemented -- expect an error."
   (should-error (cpio-dired-downcase)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-extract-all ()
+(ert-deftest cdmt-newc-cpio-dired-extract-all ()
   "Test cpio-dired-extract-all.
 cpio-dired-extract-all is not yet implemented -- expect an error."
   (should-error (cpio-dired-extract-all)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-extract-entries ()
+(ert-deftest cdmt-newc-cpio-dired-extract-entries ()
   "Test cpio-dired-extract-entries.
 cpio-dired-extract-entries is not yet implemented -- expect an error."
   (should-error (cpio-dired-extract-entries)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-find-alternate-entry ()
+(ert-deftest cdmt-newc-cpio-dired-find-alternate-entry ()
   "Test cpio-dired-find-alternate-entry.
 cpio-dired-find-alternate-entry is not yet implemented -- expect an error."
   (should-error (cpio-dired-find-alternate-entry)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-find-entry () ;✓
+(ert-deftest cdmt-newc-cpio-dired-find-entry () ;✓
   "Test the function of M-x cpio-find-entry.
 Expect errors about killed buffers.
 They reflect an outstanding bug in cpio-affiliated buffers."
 
-  (let ((test-name "cdmt-cpio-dired-find-entry")
+  (let ((test-name "cdmt-newc-cpio-dired-find-entry")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
         (cpio-dired-buffer-contents)
+       (cpio-contents-buffer)
+       (cpio-contents-buffer-string)
+       (cpio-catalog-contents-before)
+       (cpio-catalog-contents-after)
        (cpio-contents-window)
        (entry-name)
        (past-entries ()))
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
     
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (setq entry-name "aaa")
@@ -13114,7 +13236,7 @@ They reflect an outstanding bug in cpio-affiliated 
buffers."
                                                 
(buffer-substring-no-properties (point-min) (point-max))))
             (setq cpio-contents-window (get-buffer-window 
cpio-contents-buffer))
             (setq cpio-archive-buffer-contents
-                  (cdmt-filter-archive-contents
+                  (cdmt-newc-filter-archive-contents
                    (with-current-buffer cpio-archive-buffer
                      (buffer-substring-no-properties (point-min) 
(point-max)))))
             (setq cpio-dired-buffer-contents
@@ -13124,9 +13246,9 @@ They reflect an outstanding bug in cpio-affiliated 
buffers."
 
     (with-current-buffer cpio-dired-buffer
       (should (and "Expecting an untouched small archive. (14832)"
-                  (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                  (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
       (should (and  "Expecting an untouched small dired buffer (14834)"
-                   (string-match *cdmt-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
+                   (string-match *cdmt-newc-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
       (should (and "Expecting a real entry contents buffer. (14836)"
                   (not (null cpio-contents-buffer))))
       (should (and "...and expecting the entry contents buffer to be live. 
(14838)"
@@ -13153,7 +13275,7 @@ They reflect an outstanding bug in cpio-affiliated 
buffers."
                                                                                
 (point-max))))
             (setq cpio-contents-window (get-buffer-window 
cpio-contents-buffer))
             (setq cpio-archive-buffer-contents
-                  (cdmt-filter-archive-contents
+                  (cdmt-newc-filter-archive-contents
                    (with-current-buffer cpio-archive-buffer
                      (buffer-substring-no-properties (point-min) 
(point-max)))))
             (setq cpio-dired-buffer-contents
@@ -13162,9 +13284,9 @@ They reflect an outstanding bug in cpio-affiliated 
buffers."
 
     (with-current-buffer cpio-dired-buffer
       (should (and "Expecting an unchanged small archive. (14870)."
-                  (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                  (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
       (should (and "Expecting an untouched cpio-dired buffer (14872)"
-                  (string-match *cdmt-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
+                  (string-match *cdmt-newc-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
       (should (not (null cpio-contents-buffer)))
       (should (buffer-live-p cpio-contents-buffer))
       (should (string-equal cpio-contents-buffer-string "\nccc\n\n"))
@@ -13192,22 +13314,22 @@ They reflect an outstanding bug in cpio-affiliated 
buffers."
                (kill-buffer cpio-contents-buffer)))
          past-entries)))
 
-(ert-deftest cdmt-cpio-dired-find-entry-other-window ()
+(ert-deftest cdmt-newc-cpio-dired-find-entry-other-window ()
   "Test cpio-dired-find-entry-other-window.
 cpio-dired-find-entry-other-window is not yet implemented -- expect an error."
   (should-error (cpio-dired-find-entry-other-window)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-flag-auto-save-entries () ;✓
+(ert-deftest cdmt-newc-cpio-dired-flag-auto-save-entries () ;✓
   "Test the function of M-x cpio-dired-flag-auto-save-entries."
-  (let ((test-name "cdmt-cpio-dired-flag-auto-save-entries")
+  (let ((test-name "cdmt-newc-cpio-dired-flag-auto-save-entries")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
         (cpio-dired-buffer-contents)
        (cpio-catalog-contents-before)
        (cpio-catalog-contents-after))
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (beginning-of-line)
@@ -13216,7 +13338,7 @@ cpio-dired-find-entry-other-window is not yet 
implemented -- expect an error."
             (cpio-dired-do-copy 1))
           (cpio-dired-flag-auto-save-entries)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -13623,13 +13745,12 @@ D -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|de
 D -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} #b
 D -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|dec\\|feb\\|j\\(?:an\\|u[ln]\\)\\|ma[ry]\\|nov\\|oct\\|sep\\)
 [[:digit:]]\\{2\\} [[:digit:]]\\{2\\}:[[:digit:]]\\{2\\} #c
 " cpio-dired-buffer-contents)))
-     (should (and "Expecting a catalog with autosave entries for each 
one-character entry."
-                 (string-match "((\"a\" \.
+     ;; (should (and "Expecting a catalog with autosave entries for each 
one-character entry."
+       (should   (string-match "((\"a\" \.
 \\s-+\[\[[[:digit:]]+ 33188 [[:digit:]]+ [[:digit:]]+ 1
 \\s-+([[:digit:]]+ [[:digit:]]+)
 \\s-+4 [[:digit:]]+ [[:digit:]]+ [[:digit:]]+ [[:digit:]]+ 2 0 \"a\"]
 \\s-+#<marker at 1 in alphabet_small\.newc\.cpio> #<marker at 113 in 
alphabet_small\.newc\.cpio> cpio-mode-entry-unmodified])
->>>>>>> 1.3.18.2
  (\"aa\" \.
 \\s-+\[\[[[:digit:]]+ 33188 [[:digit:]]+ [[:digit:]]+ 1
 \\s-+([[:digit:]]+ [[:digit:]]+)
@@ -13730,35 +13851,35 @@ D -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|de
 \\s-+([[:digit:]]+ [[:digit:]]+)
 \\s-+4 [[:digit:]]+ [[:digit:]]+ [[:digit:]]+ [[:digit:]]+ 3 0 \"#c\"]
 \\s-+#<marker at 2437 in alphabet_small\.newc\.cpio> #<marker at 2553 in 
alphabet_small\.newc\.cpio> cpio-mode-entry-unmodified\]))
-" cpio-catalog-contents-after)))))
+" cpio-catalog-contents-after))))
 
-(ert-deftest cdmt-cpio-dired-flag-backup-entries ()
+(ert-deftest cdmt-newc-cpio-dired-flag-backup-entries ()
   "Test cpio-dired-flag-backup-entries.
 cpio-dired-flag-backup-entries is not yet implemented -- expect an error."
   (should-error (cpio-dired-flag-backup-entries)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-flag-entries-regexp ()
+(ert-deftest cdmt-newc-cpio-dired-flag-entries-regexp ()
   "Test cpio-dired-flag-entries-regexp.
 cpio-dired-flag-entries-regexp is not yet implemented -- expect an error."
   (should-error (cpio-dired-flag-entries-regexp)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-flag-entry-deletion () ;✓
+(ert-deftest cdmt-newc-cpio-dired-flag-entry-deletion () ;✓
   "Test the function of M-x cpio-flag-entry-deletion."
-  (let ((test-name "cdmt-cpio-dired-flag-entry-deletion")
+  (let ((test-name "cdmt-newc-cpio-dired-flag-entry-deletion")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
         (cpio-dired-buffer-contents)
        (cpio-catalog-contents-before)
        (cpio-catalog-contents-after))
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-flag-entry-deletion 1)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -13767,7 +13888,7 @@ cpio-dired-flag-entries-regexp is not yet implemented 
-- expect an error."
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "Expecting and unchanged small archive. (15472)"
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting a cpio-dired buffer with one entry flagged for 
deletion."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
 
@@ -13797,7 +13918,7 @@ D -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|de
           (dired-next-line 2)
           (cpio-dired-flag-entry-deletion 4)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -13806,7 +13927,7 @@ D -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|de
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "Expecting and unchanged small archive. (15510)"
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting a cpio-dired buffer with another 4 entries flagged 
for deletion."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
 
@@ -13832,9 +13953,9 @@ D -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|de
     (should (and "Expecting an unchanged catalog. (17959)"
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))))
 
-(ert-deftest cdmt-cpio-dired-flag-garbage-entries ()
+(ert-deftest cdmt-newc-cpio-dired-flag-garbage-entries ()
   "Test cpio-dired-flag-garbage-entries."
-  (let ((test-name "cdmt-cpio-dired-flag-entry-deletion")
+  (let ((test-name "cdmt-newc-cpio-dired-flag-entry-deletion")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
@@ -13843,9 +13964,9 @@ D -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|de
        (cpio-catalog-contents-after)
        (entry-name "aa"))
 
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
     
-    (progn (setq cpio-dired-catalog-contents-before (cpio-catalog))
+    (progn (setq cpio-catalog-contents-before (cpio-catalog))
           (cpio-dired-goto-entry entry-name)
           (mapc (lambda (s)            ;suffix
                   (setq unread-command-events (listify-key-sequence (concat 
entry-name "." s "\n")))
@@ -13853,7 +13974,7 @@ D -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        4 
\\(?:a\\(?:pr\\|ug\\)\\|de
                 (list "aux" "bak" "dvi" "log" "orig" "rej" "toc"))
           (cpio-dired-flag-garbage-entries)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -14464,47 +14585,47 @@ D -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|de
 \\s-+5 [[:digit:]]+ [[:digit:]]+ [[:digit:]]+ [[:digit:]]+ 7 0 \"aa\.toc\"]
 \\s-+#<marker at 2965 in alphabet_small\.newc\.cpio> #<marker at 3085 in 
alphabet_small\.newc\.cpio> cpio-mode-entry-unmodified\]))
 " cpio-catalog-contents-after)))
-    (cdmt-test-save)))
+    (cdmt-newc-test-save)))
 
-(ert-deftest cdmt-cpio-dired-goto-entry ()
+(ert-deftest cdmt-newc-cpio-dired-goto-entry ()
   "Test cpio-dired-goto-entry.
 cpio-dired-goto-entry is not yet implemented -- expect an error."
   (should-error (cpio-dired-goto-entry)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-hide-all ()
+(ert-deftest cdmt-newc-cpio-dired-hide-all ()
   "Test cpio-dired-hide-all.
 cpio-dired-hide-all is not yet implemented -- expect an error."
   (should-error (cpio-dired-hide-all)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-hide-details-mode ()
+(ert-deftest cdmt-newc-cpio-dired-hide-details-mode ()
   "Test cpio-dired-hide-details-mode) ;✓ Implemented by analogue to dired, but 
does nothing.
 cpio-dired-hide-details-mode) ;✓ Implemented by analogue to dired, but does 
nothing is not yet implemented -- expect an error."
   (should-error (cpio-dired-hide-details-mode) ;✓ Implemented by analogue to 
dired, but does nothing)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-hide-subdir ()
+(ert-deftest cdmt-newc-cpio-dired-hide-subdir ()
   "Test cpio-dired-hide-subdir) ;.
 cpio-dired-hide-subdir) ; is not yet implemented -- expect an error."
   (should-error (cpio-dired-hide-subdir)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-mark () ;✓
+(ert-deftest cdmt-newc-cpio-dired-mark () ;✓
   "Test the function of M-x cpio-dired-mark."
-  (let ((test-name "cdmt-cpio-dired-mark")
+  (let ((test-name "cdmt-newc-cpio-dired-mark")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
         (cpio-dired-buffer-contents)
        (cpio-catalog-contents-before)
        (cpio-catalog-contents-after))
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-mark 1)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -14513,7 +14634,7 @@ cpio-dired-hide-subdir) ; is not yet implemented -- 
expect an error."
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
     
     (should (and "Expecting and unchanged small archive. (16216)"
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting a cpio-dired buffer with the first entry marked."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
 
@@ -14543,7 +14664,7 @@ cpio-dired-hide-subdir) ; is not yet implemented -- 
expect an error."
           (dired-next-line 2)
           (cpio-dired-mark 4)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -14552,7 +14673,7 @@ cpio-dired-hide-subdir) ; is not yet implemented -- 
expect an error."
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "Expecting and unchanged small archive. (16254)"
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting a cpio-dired buffer with 4 more entries marked."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
 
@@ -14578,32 +14699,32 @@ cpio-dired-hide-subdir) ; is not yet implemented -- 
expect an error."
     (should (and "Expecting an unchanged catalog. (17961)"
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))))
 
-(ert-deftest cdmt-cpio-dired-mark-directories ()
+(ert-deftest cdmt-newc-cpio-dired-mark-directories ()
   "Test cpio-dired-mark-directories.
 cpio-dired-mark-directories is not yet implemented -- expect an error."
   (should-error (cpio-dired-mark-directories)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-mark-entries-containing-regexp ()
+(ert-deftest cdmt-newc-cpio-dired-mark-entries-containing-regexp ()
   "Test cpio-dired-mark-entries-containing-regexp.
 cpio-dired-mark-entries-containing-regexp is not yet implemented -- expect an 
error."
   (should-error (cpio-dired-mark-entries-containing-regexp)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-mark-entries-regexp () ;✓
-  (let ((test-name "cdmt-cpio-dired-mark-entries-regexp")
+(ert-deftest cdmt-newc-cpio-dired-mark-entries-regexp () ;✓
+  (let ((test-name "cdmt-newc-cpio-dired-mark-entries-regexp")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
         (cpio-dired-buffer-contents)
        (cpio-catalog-contents-before)
        (cpio-catalog-contents-after))
-    (cdmt-reset)
+    (cdmt-newc-reset)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-mark-entries-regexp "\\`...\\'")
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -14612,7 +14733,7 @@ cpio-dired-mark-entries-containing-regexp is not yet 
implemented -- expect an er
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "Expecting and unchanged small archive. (16313)"
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting a cpio-dired buffer with ... marked."
                  (string-match "CPIO archive: alphabet_small.newc.cpio:
 
@@ -14638,33 +14759,33 @@ cpio-dired-mark-entries-containing-regexp is not yet 
implemented -- expect an er
     (should (and "Expecting an unchanged catalog. (17962)"
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))))
 
-(ert-deftest cdmt-cpio-dired-mark-executables ()
+(ert-deftest cdmt-newc-cpio-dired-mark-executables ()
   "Test cpio-dired-mark-executables.
 cpio-dired-mark-executables is not yet implemented -- expect an error."
   (should-error (cpio-dired-mark-executables)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-mark-subdir-entries ()
+(ert-deftest cdmt-newc-cpio-dired-mark-subdir-entries ()
   "Test cpio-dired-mark-subdir-entries.
 cpio-dired-mark-subdir-entries is not yet implemented -- expect an error."
   (should-error (cpio-dired-mark-subdir-entries)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-mark-symlinks ()
+(ert-deftest cdmt-newc-cpio-dired-mark-symlinks ()
   "Test cpio-dired-mark-symlinks.
 cpio-dired-mark-symlinks is not yet implemented -- expect an error."
   (should-error (cpio-dired-mark-symlinks)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-mouse-find-entry-other-window ()
+(ert-deftest cdmt-newc-cpio-dired-mouse-find-entry-other-window ()
   "Test cpio-dired-mouse-find-entry-other-window.
 cpio-dired-mouse-find-entry-other-window is not yet implemented -- expect an 
error."
   (should-error (cpio-dired-mouse-find-entry-other-window)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-next-dirline () ;✓
+(ert-deftest cdmt-newc-cpio-dired-next-dirline () ;✓
   "Test the function of M-x cpio-dired-next-dirline."
-  (let ((test-name "cdmt-cpio-dired-next-dirline")
+  (let ((test-name "cdmt-newc-cpio-dired-next-dirline")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
@@ -14672,13 +14793,13 @@ cpio-dired-mouse-find-entry-other-window is not yet 
implemented -- expect an err
        (cpio-catalog-contents-before)
        (cpio-catalog-contents-after)
        (entry-name))
-    (cdmt-reset 'make 'large)
+    (cdmt-newc-reset 'make 'large)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-next-dirline 1)
           (setq entry-name (cpio-dired-get-entry-name))
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -14689,9 +14810,9 @@ cpio-dired-mouse-find-entry-other-window is not yet 
implemented -- expect an err
     (should (and "The current entry should be aaaaa.d"
                 (string-equal "aaaaa.d" entry-name)))
     (should (and "Expecting an untouched large archive buffer."
-                (string-equal *cdmt-untouched-large-archive-buffer* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-large-archive-buffer* 
cpio-archive-buffer-contents)))
     (should (and "The dired style buffer should be untouched."
-                (string-match *cdmt-untouched-large-dired-buffer* 
cpio-dired-buffer-contents)))
+                (string-match *cdmt-newc-untouched-large-dired-buffer* 
cpio-dired-buffer-contents)))
     (should (and "Expecting an unchanged catalog."
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))
 
@@ -14699,7 +14820,7 @@ cpio-dired-mouse-find-entry-other-window is not yet 
implemented -- expect an err
           (cpio-dired-next-dirline 2)
           (setq entry-name (cpio-dired-get-entry-name))
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -14710,9 +14831,9 @@ cpio-dired-mouse-find-entry-other-window is not yet 
implemented -- expect an err
     (should (and "The current entry should be ccccc.d"
                 (string-equal "ccccc.d" entry-name)))
     (should (and "The archive buffer should be untouched. (1)"
-                (string-equal *cdmt-untouched-large-archive-buffer* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-large-archive-buffer* 
cpio-archive-buffer-contents)))
     (should (and "The dired style buffer should be untouched. (1)"
-                (string-match *cdmt-untouched-large-dired-buffer* 
cpio-dired-buffer-contents)))
+                (string-match *cdmt-newc-untouched-large-dired-buffer* 
cpio-dired-buffer-contents)))
     (should (and "Expecting an unchanged catalog."
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))
 
@@ -14720,7 +14841,7 @@ cpio-dired-mouse-find-entry-other-window is not yet 
implemented -- expect an err
           (cpio-dired-next-dirline 4)
           (setq entry-name (cpio-dired-get-entry-name))
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -14731,9 +14852,9 @@ cpio-dired-mouse-find-entry-other-window is not yet 
implemented -- expect an err
     (should (and "The current entry should be ggggg.d"
                 (string-equal "ggggg.d" entry-name)))
     (should (and "The archive buffer should be untouched. (2)"
-                (string-equal *cdmt-untouched-large-archive-buffer* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-large-archive-buffer* 
cpio-archive-buffer-contents)))
     (should (and "The dired style buffer shouold be untouched (2)"
-                (string-match *cdmt-untouched-large-dired-buffer* 
cpio-dired-buffer-contents)))
+                (string-match *cdmt-newc-untouched-large-dired-buffer* 
cpio-dired-buffer-contents)))
     (should (and "Expecting an unchanged catalog."
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))
 
@@ -14741,7 +14862,7 @@ cpio-dired-mouse-find-entry-other-window is not yet 
implemented -- expect an err
           (cpio-dired-next-dirline 8)
           (setq entry-name (cpio-dired-get-entry-name))
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -14752,9 +14873,9 @@ cpio-dired-mouse-find-entry-other-window is not yet 
implemented -- expect an err
     (should (and "The current entry should be ooooo.d."
                 (string-equal "ooooo.d" entry-name)))
     (should (and "The archive buffer should be untouched. (3)"
-                (string-equal *cdmt-untouched-large-archive-buffer* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-large-archive-buffer* 
cpio-archive-buffer-contents)))
     (should (and "The dired style buffer should be untouched. (3)"
-                (string-match *cdmt-untouched-large-dired-buffer* 
cpio-dired-buffer-contents)))
+                (string-match *cdmt-newc-untouched-large-dired-buffer* 
cpio-dired-buffer-contents)))
     (should (and "Expecting an unchanged catalog."
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))
 
@@ -14762,7 +14883,7 @@ cpio-dired-mouse-find-entry-other-window is not yet 
implemented -- expect an err
           (cpio-dired-next-dirline 16)
           (setq entry-name (cpio-dired-get-entry-name))
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -14773,9 +14894,9 @@ cpio-dired-mouse-find-entry-other-window is not yet 
implemented -- expect an err
     (should (and "The current entry should be zzzzz.d."
                 (string-equal "zzzzz.d" entry-name)))
     (should (and "The archive buffer should be untouched. (4)"
-                (string-equal *cdmt-untouched-large-archive-buffer* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-large-archive-buffer* 
cpio-archive-buffer-contents)))
     (should (and "The dired style buffer should be untouched. (4)"
-                (string-match *cdmt-untouched-large-dired-buffer* 
cpio-dired-buffer-contents)))
+                (string-match *cdmt-newc-untouched-large-dired-buffer* 
cpio-dired-buffer-contents)))
     (should (and "Expecting an unchanged catalog."
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))
 
@@ -14783,7 +14904,7 @@ cpio-dired-mouse-find-entry-other-window is not yet 
implemented -- expect an err
           (cpio-dired-next-dirline 1)
           (setq entry-name (cpio-dired-get-entry-name))
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -14794,15 +14915,15 @@ cpio-dired-mouse-find-entry-other-window is not yet 
implemented -- expect an err
     (should (and "The current entry should still be zzzzz.d."
                 (string-equal "zzzzz.d" entry-name)))
     (should (and "The archive buffer should be untouched. (5)"
-                (string-equal *cdmt-untouched-large-archive-buffer* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-large-archive-buffer* 
cpio-archive-buffer-contents)))
     (should (and "The dired style buffer should be untouched. (5)"
-                (string-match *cdmt-untouched-large-dired-buffer* 
cpio-dired-buffer-contents)))
+                (string-match *cdmt-newc-untouched-large-dired-buffer* 
cpio-dired-buffer-contents)))
     (should (and "Expecting an unchanged catalog."
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))))
 
-(ert-deftest cdmt-cpio-dired-next-line () ;✓
+(ert-deftest cdmt-newc-cpio-dired-next-line () ;✓
   "Test the function of M-x cpio-dired-next-line."
-  (let ((test-name "cdmt-cpio-dired-next-line")
+  (let ((test-name "cdmt-newc-cpio-dired-next-line")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
@@ -14810,12 +14931,12 @@ cpio-dired-mouse-find-entry-other-window is not yet 
implemented -- expect an err
        (cpio-catalog-contents-before)
        (cpio-catalog-contents-after)
        (entry-name))
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (setq entry-name (cpio-dired-get-entry-name))
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -14825,9 +14946,9 @@ cpio-dired-mouse-find-entry-other-window is not yet 
implemented -- expect an err
     
     (should (string-equal "a" entry-name))
     (should (and "Expecting an untouched cpio-dired buffer. (16526)"
-                (string-match *cdmt-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
+                (string-match *cdmt-newc-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
     (should (and "Expecting and unchanged small archive. (16526)"
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting an unchanged catalog. (17963)"
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))
 
@@ -14835,7 +14956,7 @@ cpio-dired-mouse-find-entry-other-window is not yet 
implemented -- expect an err
           (cpio-dired-next-line 2)
           (setq entry-name (cpio-dired-get-entry-name))
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -14845,15 +14966,15 @@ cpio-dired-mouse-find-entry-other-window is not yet 
implemented -- expect an err
 
     (should (string-equal "aaa" entry-name))
     (should (and "Expecting an untouched cpio-dired buffer. (16545)"
-                (string-match *cdmt-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
+                (string-match *cdmt-newc-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
     (should (and "Expecting and unchanged small archive. (16544)"
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-next-line 4)
           (setq entry-name (cpio-dired-get-entry-name))
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -14863,9 +14984,9 @@ cpio-dired-mouse-find-entry-other-window is not yet 
implemented -- expect an err
 
     (should (string-equal "b" entry-name))
     (should (and "Expecting an untouched cpio-dired buffer. (16563)"
-                (string-match *cdmt-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
+                (string-match *cdmt-newc-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
     (should (and "Expecting and unchanged small archive. (16561)"
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting an unchanged catalog. (17964)"
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))
 
@@ -14873,7 +14994,7 @@ cpio-dired-mouse-find-entry-other-window is not yet 
implemented -- expect an err
           (cpio-dired-next-line 100)
           (setq entry-name (cpio-dired-get-entry-name))
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -14883,48 +15004,48 @@ cpio-dired-mouse-find-entry-other-window is not yet 
implemented -- expect an err
 
     (should (equal nil entry-name))
     (should (and "Expecting an untouched cpio-dired buffer. (16582)"
-                (string-match *cdmt-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
+                (string-match *cdmt-newc-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
     (should (and "Expecting and unchanged small archive. (16579)"
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting an unchanged catalog. (17965)"
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))))
 
-(ert-deftest cdmt-cpio-dired-next-marked-entry ()
+(ert-deftest cdmt-newc-cpio-dired-next-marked-entry ()
   "Test cpio-dired-next-marked-entry.
 cpio-dired-next-marked-entry is not yet implemented -- expect an error."
   (should-error (cpio-dired-next-marked-entry)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-next-marked-entry ()
+(ert-deftest cdmt-newc-cpio-dired-next-marked-entry ()
   "Test cpio-dired-next-marked-entry.
 cpio-dired-next-marked-entry is not yet implemented -- expect an error."
   (should-error (cpio-dired-next-marked-entry)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-next-subdir ()
+(ert-deftest cdmt-newc-cpio-dired-next-subdir ()
   "Test the function of M-x cpio-next-subdir."
   (should-error (cpio-dired-next-marked-entry)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-prev-marked-entry ()
+(ert-deftest cdmt-newc-cpio-dired-prev-marked-entry ()
   "Test cpio-dired-prev-marked-entry.
 cpio-dired-prev-marked-entry is not yet implemented -- expect an error."
   (should-error (cpio-dired-prev-marked-entry)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-prev-marked-entry ()
+(ert-deftest cdmt-newc-cpio-dired-prev-marked-entry ()
   "Test cpio-dired-prev-marked-entry.
 cpio-dired-prev-marked-entry is not yet implemented -- expect an error."
   (should-error (cpio-dired-prev-marked-entry)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-prev-subdir ()
+(ert-deftest cdmt-newc-cpio-dired-prev-subdir ()
   "Test the function of M-x cpio-dired-prev-subdir."
   (should-error (cpio-dired-previous-line)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-previous-line () ;✓
-  (let ((test-name "cdmt-cpio-dired-previous-line")
+(ert-deftest cdmt-newc-cpio-dired-previous-line () ;✓
+  (let ((test-name "cdmt-newc-cpio-dired-previous-line")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
@@ -14932,14 +15053,14 @@ cpio-dired-prev-marked-entry is not yet implemented 
-- expect an error."
        (cpio-catalog-contents-before)
        (cpio-catalog-contents-after)
        (where))
-    (cdmt-reset)
+    (cdmt-newc-reset)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (goto-char (point-max))
           (cpio-dired-previous-line 1)
           (setq where (point))
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -14949,9 +15070,9 @@ cpio-dired-prev-marked-entry is not yet implemented -- 
expect an error."
 
     (should (= where 1155))
     (should (and "Expecting and unchanged small archive. (16642)"
-                (string-equal *cdmt-untouched-small-archive-buffer* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting an untouched cpio-dired buffer. (16649)"
-                (string-match *cdmt-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
+                (string-match *cdmt-newc-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
     (should (and "Expecting an unchanged catalog. (17966)"
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))
 
@@ -14959,7 +15080,7 @@ cpio-dired-prev-marked-entry is not yet implemented -- 
expect an error."
           (cpio-dired-previous-line 2)
           (setq where (point))
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents 
@@ -14968,9 +15089,9 @@ cpio-dired-prev-marked-entry is not yet implemented -- 
expect an error."
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (= where 1019))
-    (should (string-match *cdmt-untouched-small-archive-buffer* 
cpio-archive-buffer-contents))
+    (should (string-match *cdmt-newc-small-archive* 
cpio-archive-buffer-contents))
     (should (and "Expecting an untouched cpio-dired buffer. (16667)"
-                (string-match *cdmt-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
+                (string-match *cdmt-newc-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
     (should (and "Expecting an unchanged catalog. (17967)"
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))
 
@@ -14978,7 +15099,7 @@ cpio-dired-prev-marked-entry is not yet implemented -- 
expect an error."
           (cpio-dired-previous-line 4)
           (setq where (point))
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -14988,101 +15109,101 @@ cpio-dired-prev-marked-entry is not yet implemented 
-- expect an error."
 
     (should (= where 774))
     (should (and "Expecting and unchanged small archive. (16677)"
-                (string-equal *cdmt-untouched-small-archive-buffer* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting an untouched cpio-dired buffer. (16686)"
-                (string-match *cdmt-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
+                (string-match *cdmt-newc-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
     (should (and "Expecting an unchanged catalog. (17968)"
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))))
 
-(ert-deftest cdmt-cpio-dired-previous-line ()
+(ert-deftest cdmt-newc-cpio-dired-previous-line ()
   "Test cpio-dired-previous-line.
 cpio-dired-previous-line is not yet implemented -- expect an error."
   (should-error (cpio-dired-previous-line)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-previous-line ()
+(ert-deftest cdmt-newc-cpio-dired-previous-line ()
   "Test cpio-dired-previous-line.
 cpio-dired-previous-line is not yet implemented -- expect an error."
   (should-error (cpio-dired-previous-line)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-show-entry-type ()
+(ert-deftest cdmt-newc-cpio-dired-show-entry-type ()
   "Test cpio-dired-show-entry-type.
 cpio-dired-show-entry-type is not yet implemented -- expect an error."
   (should-error (cpio-dired-show-entry-type)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-sort-toggle-or-edit ()
+(ert-deftest cdmt-newc-cpio-dired-sort-toggle-or-edit ()
   "Test cpio-dired-sort-toggle-or-edit.
 cpio-dired-sort-toggle-or-edit is not yet implemented -- expect an error."
   (should-error (cpio-dired-sort-toggle-or-edit)
      :type 'error))
 
 ;; I'm not sure how to test this.
-;; (ert-deftest cdmt-cpio-dired-summary () ;✓
+;; (ert-deftest cdmt-newc-cpio-dired-summary () ;✓
 ;;   "Test the function of M-x cpio-dired-summary."
 ;;   (shell-command "cd test_data/alphabet ; make newc" nil nil)
-;;   (let ((test-name "cdmt-cpio-dired-summary")
-;;         (cpio-archive-buffer (find-file-noselect  *cdmt-small-archive*))
+;;   (let ((test-name "cdmt-newc-cpio-dired-summary")
+;;         (cpio-archive-buffer (find-file-noselect  
*cdmt-newc-small-archive*))
 ;;         (cpio-archive-buffer-contents)
 ;;         (cpio-dired-buffer)
 ;;         (cpio-dired-buffer-contents)
 ;;         )
 ;;     (with-current-buffer cpio-archive-buffer
 ;;       (cpio-mode))
-;;     (setq cpio-dired-buffer (get-buffer-create (cpio-dired-buffer-name 
*cdmt-small-archive*)))
+;;     (setq cpio-dired-buffer (get-buffer-create (cpio-dired-buffer-name 
*cdmt-newc-small-archive*)))
 ;; 
 ;;     (should (string-equal (with-output-to-string
 ;;                         (cpio-dired-summary))
 ;; 
 ;;     ))
 
-(ert-deftest cdmt-cpio-dired-toggle-marks ()
+(ert-deftest cdmt-newc-cpio-dired-toggle-marks ()
   "Test cpio-dired-toggle-marks.
 cpio-dired-toggle-marks is not yet implemented -- expect an error."
   (should-error (cpio-dired-toggle-marks)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-toggle-marks ()
+(ert-deftest cdmt-newc-cpio-dired-toggle-marks ()
   "Test cpio-dired-toggle-marks.
 cpio-dired-toggle-marks is not yet implemented -- expect an error."
   (should-error (cpio-dired-toggle-marks)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-toggle-read-only ()
+(ert-deftest cdmt-newc-cpio-dired-toggle-read-only ()
   "Test cpio-dired-toggle-read-only.
 cpio-dired-toggle-read-only is not yet implemented -- expect an error."
   (should-error (cpio-dired-toggle-read-only)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-toggle-read-only ()
+(ert-deftest cdmt-newc-cpio-dired-toggle-read-only ()
   "Test cpio-dired-toggle-read-only.
 cpio-dired-toggle-read-only is not yet implemented -- expect an error."
   (should-error (cpio-dired-toggle-read-only)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-undo ()
+(ert-deftest cdmt-newc-cpio-dired-undo ()
   "Test cpio-dired-undo.
 cpio-dired-undo is not yet implemented -- expect an error."
   (should-error (cpio-dired-undo)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-unmark () ;✓
+(ert-deftest cdmt-newc-cpio-dired-unmark () ;✓
   "Test the function of M-x cpio-dired-unmark."
-  (let ((test-name "cdmt-cpio-dired-unmark")
+  (let ((test-name "cdmt-newc-cpio-dired-unmark")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
         (cpio-dired-buffer-contents)
        (cpio-catalog-contents-before)
        (cpio-catalog-contents-after))
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-mark-entries-regexp ".")
           (cpio-dired-unmark 1)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -15091,7 +15212,7 @@ cpio-dired-undo is not yet implemented -- expect an 
error."
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
     
     (should (and "Expecting an untouched small archive."
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting a dired-style buffer with every entry except the 
first marked."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
 
@@ -15121,7 +15242,7 @@ cpio-dired-undo is not yet implemented -- expect an 
error."
           (cpio-dired-next-line 2)
           (cpio-dired-unmark 2)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -15130,7 +15251,7 @@ cpio-dired-undo is not yet implemented -- expect an 
error."
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
     
     (should (and "Expecting an untouched small archive."
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecing a dired bugger with all but two entries marked."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
 
@@ -15160,7 +15281,7 @@ cpio-dired-undo is not yet implemented -- expect an 
error."
           (dired-next-line 4)
           (cpio-dired-unmark 4)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -15169,7 +15290,7 @@ cpio-dired-undo is not yet implemented -- expect an 
error."
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "Expecting an untouched small archive."
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting a dired-style buffer with another 4 entries 
unmarked."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
 
@@ -15199,7 +15320,7 @@ cpio-dired-undo is not yet implemented -- expect an 
error."
           (dired-next-line 4)
           (cpio-dired-unmark 4)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -15208,7 +15329,7 @@ cpio-dired-undo is not yet implemented -- expect an 
error."
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "Expecting an untouched archive."
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting a dired-style buffer with yet the last entry 
unmarked."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
 
@@ -15234,16 +15355,16 @@ cpio-dired-undo is not yet implemented -- expect an 
error."
     (should (and "Expecting an unchanged catalog. (17972)"
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))))
 
-(ert-deftest cdmt-cpio-dired-unmark-all-entries ()
+(ert-deftest cdmt-newc-cpio-dired-unmark-all-entries ()
   "Test cpio-dired-unmark-all-entries."
-  (let ((test-name "cdmt-cpio-dired-unmark")
+  (let ((test-name "cdmt-newc-cpio-dired-unmark")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
         (cpio-dired-buffer-contents)
        (cpio-catalog-contents-before)
        (cpio-catalog-contents-after))
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-mark-entries-regexp ".")
@@ -15255,7 +15376,7 @@ cpio-dired-undo is not yet implemented -- expect an 
error."
           (cpio-dired-mark-this-entry ?E) (cpio-dired-mark-this-entry ?E) 
(cpio-dired-mark-this-entry ?E)
           (cpio-dired-mark-this-entry ?F) (cpio-dired-mark-this-entry ?F) 
(cpio-dired-mark-this-entry ?F) (cpio-dired-mark-this-entry ?F)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -15264,7 +15385,7 @@ cpio-dired-undo is not yet implemented -- expect an 
error."
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "Expecting an unchanged archive buffer."
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting a variety of marks in a dired-style buffer."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
 
@@ -15293,7 +15414,7 @@ F -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|de
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-unmark-all-entries "" nil)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -15302,7 +15423,7 @@ F -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|de
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "Expecting an unchanged archive buffer."
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting a dired-style buffer with no marks."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
 
@@ -15338,7 +15459,7 @@ F -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|de
           (cpio-dired-mark-this-entry ?E) (cpio-dired-mark-this-entry ?E) 
(cpio-dired-mark-this-entry ?E)
           (cpio-dired-mark-this-entry ?F) (cpio-dired-mark-this-entry ?F) 
(cpio-dired-mark-this-entry ?F) (cpio-dired-mark-this-entry ?F)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -15347,7 +15468,7 @@ F -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|de
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "Expecting an unchanged archive buffer."
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting a variety of marks in a dired-style buffer."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
 
@@ -15377,7 +15498,7 @@ F -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|de
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-unmark-all-entries "B" nil)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -15386,7 +15507,7 @@ F -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|de
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "Expecting an unchanged archive buffer."
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting a dired-style buffer with no B marks."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
 
@@ -15416,7 +15537,7 @@ F -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|de
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-unmark-all-entries "F" nil)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -15425,7 +15546,7 @@ F -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|de
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "Expecting an unchanged archive buffer."
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting a dired-style buffer with neither B nor F marks."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
 
@@ -15451,16 +15572,16 @@ E -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|de
     (should (and "Expecting an unchanged catalog. (17977)"
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))))
 
-(ert-deftest cdmt-cpio-dired-unmark-all-marks ()
+(ert-deftest cdmt-newc-cpio-dired-unmark-all-marks ()
   "Test cpio-dired-unmark-all-marks."
-  (let ((test-name "cdmt-cpio-dired-unmark")
+  (let ((test-name "cdmt-newc-cpio-dired-unmark")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
         (cpio-dired-buffer-contents)
        (cpio-catalog-contents-before)
        (cpio-catalog-contents-after))
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-mark-entries-regexp ".")
@@ -15472,7 +15593,7 @@ E -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|de
           (cpio-dired-mark-this-entry ?E) (cpio-dired-mark-this-entry ?E) 
(cpio-dired-mark-this-entry ?E)
           (cpio-dired-mark-this-entry ?F) (cpio-dired-mark-this-entry ?F) 
(cpio-dired-mark-this-entry ?F) (cpio-dired-mark-this-entry ?F)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -15481,7 +15602,7 @@ E -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        7 
\\(?:a\\(?:pr\\|ug\\)\\|de
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "Expecting an unchanged archive buffer."
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting a variety of marks in a dired-style buffer."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
 
@@ -15510,7 +15631,7 @@ F -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|de
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-unmark-all-marks)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -15519,7 +15640,7 @@ F -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|de
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "Expecting an unchanged archive buffer."
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting a dired-style buffer with no marks."
                 (string-match "CPIO archive: alphabet_small.newc.cpio:
 
@@ -15545,17 +15666,17 @@ F -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|de
     (should (and "Expecting an unchanged catalog. (17979)"
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))))
 
-(ert-deftest cdmt-cpio-dired-unmark-all-marks () ;✓
+(ert-deftest cdmt-newc-cpio-dired-unmark-all-marks () ;✓
   "Test the function of M-x cpio-unmark-all-marks."
-  (let ((test-name "cdmt-cpio-dired-unmark-all-marks")
+  (let ((test-name "cdmt-newc-cpio-dired-unmark-all-marks")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
         (cpio-dired-buffer-contents)
        (cpio-catalog-contents-before)
-       !(cpio-catalog-contents-after))
+       (cpio-catalog-contents-after))
 
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-mark 2)
@@ -15568,7 +15689,7 @@ F -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|de
             (cpio-dired-mark 16))
           (cpio-dired-unmark-all-marks)
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -15577,39 +15698,39 @@ F -rw-r--r--   1  [[:digit:]]+  [[:digit:]]+        5 
\\(?:a\\(?:pr\\|ug\\)\\|de
           (setq cpio-catalog-contents-after (format "%s" (pp (cpio-catalog)))))
 
     (should (and "Expecting and unchanged small archive. (17253)"
-                (string-equal *cdmt-untouched-small-archive* 
cpio-archive-buffer-contents)))
+                (string-equal *cdmt-newc-untouched-small-archive* 
cpio-archive-buffer-contents)))
     (should (and "Expecting an untouched cpio-dired buffer. (17263)"
-                (string-match *cdmt-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
+                (string-match *cdmt-newc-untouched-small-dired-buffer* 
cpio-dired-buffer-contents)))
     (should (and "Expecting an unchanged catalog. (17980)"
                 (string-equal cpio-catalog-contents-before 
cpio-catalog-contents-after)))))
 
-(ert-deftest cdmt-cpio-dired-unmark-backward ()
+(ert-deftest cdmt-newc-cpio-dired-unmark-backward ()
   "Test cpio-dired-unmark-backward.
 cpio-dired-unmark-backward is not yet implemented -- expect an error."
   (should-error (cpio-dired-unmark-backward)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-unmark-backward ()
+(ert-deftest cdmt-newc-cpio-dired-unmark-backward ()
   "Test cpio-dired-unmark-backward.
 cpio-dired-unmark-backward is not yet implemented -- expect an error."
   (should-error (cpio-dired-unmark-backward)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-up-directory ()
+(ert-deftest cdmt-newc-cpio-dired-up-directory ()
   "Test cpio-dired-up-directory.
 cpio-dired-up-directory is not yet implemented -- expect an error."
   (should-error (cpio-dired-up-directory)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-upcase ()
+(ert-deftest cdmt-newc-cpio-dired-upcase ()
   "Test cpio-dired-upcase.
 cpio-dired-upcase is not yet implemented -- expect an error."
   (should-error (cpio-dired-upcase)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-view-archive () ;✓
+(ert-deftest cdmt-newc-cpio-dired-view-archive () ;✓
   "Test the function of M-x cpio-view-archive."
-  (let ((test-name "cdmt-cpio-dired-view-archive")
+  (let ((test-name "cdmt-newc-cpio-dired-view-archive")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
@@ -15618,7 +15739,7 @@ cpio-dired-upcase is not yet implemented -- expect an 
error."
        (cpio-catalog-contents-after)
        (cpio-archive-window)
        (cpio-dired-window))
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
 
     (setq cpio-dired-window (get-buffer-window (get-buffer cpio-dired-buffer)))
     (should (window-live-p cpio-dired-window))
@@ -15642,124 +15763,118 @@ cpio-dired-upcase is not yet implemented -- expect 
an error."
     ;; (should (not (window-live-p cpio-archive-window)))
     (should (eq nil cpio-archive-window))))
 
-(ert-deftest cdmt-cpio-dired-view-entry ()
+(ert-deftest cdmt-newc-cpio-dired-view-entry ()
   "Test cpio-dired-view-entry.
 cpio-dired-view-entry is not yet implemented -- expect an error."
   (should-error (cpio-dired-view-entry)
      :type 'error))
 
-(ert-deftest cdmt-cpio-epa-dired-do-decrypt ()
+(ert-deftest cdmt-newc-cpio-epa-dired-do-decrypt ()
   "Test cpio-epa-dired-do-decrypt.
 cpio-epa-dired-do-decrypt is not yet implemented -- expect an error."
   (should-error (cpio-epa-dired-do-decrypt)
      :type 'error))
 
-(ert-deftest cdmt-cpio-epa-dired-do-encrypt ()
+(ert-deftest cdmt-newc-cpio-epa-dired-do-encrypt ()
   "Test cpio-epa-dired-do-encrypt.
 cpio-epa-dired-do-encrypt is not yet implemented -- expect an error."
   (should-error (cpio-epa-dired-do-encrypt)
      :type 'error))
 
-(ert-deftest cdmt-cpio-epa-dired-do-sign ()
+(ert-deftest cdmt-newc-cpio-epa-dired-do-sign ()
   "Test cpio-epa-dired-do-sign.
 cpio-epa-dired-do-sign is not yet implemented -- expect an error."
   (should-error (cpio-epa-dired-do-sign)
      :type 'error))
 
-(ert-deftest cdmt-cpio-epa-dired-do-verify ()
+(ert-deftest cdmt-newc-cpio-epa-dired-do-verify ()
   "Test cpio-epa-dired-do-verify.
 cpio-epa-dired-do-verify is not yet implemented -- expect an error."
   (should-error (cpio-epa-dired-do-verify)
      :type 'error))
 
-(ert-deftest cdmt-cpio-image-dired-delete-tag ()
+(ert-deftest cdmt-newc-cpio-image-dired-delete-tag ()
   "Test cpio-image-dired-delete-tag.
 cpio-image-dired-delete-tag is not yet implemented -- expect an error."
   (should-error (cpio-image-dired-delete-tag)
      :type 'error))
 
-(ert-deftest cdmt-cpio-image-dired-dired-comment-entries ()
+(ert-deftest cdmt-newc-cpio-image-dired-dired-comment-entries ()
   "Test cpio-image-dired-dired-comment-entries.
 cpio-image-dired-dired-comment-entries is not yet implemented -- expect an 
error."
   (should-error (cpio-image-dired-dired-comment-entries)
      :type 'error))
 
-(ert-deftest cdmt-cpio-image-dired-dired-display-external ()
+(ert-deftest cdmt-newc-cpio-image-dired-dired-display-external ()
   "Test cpio-image-dired-dired-display-external.
 cpio-image-dired-dired-display-external is not yet implemented -- expect an 
error."
   (should-error (cpio-image-dired-dired-display-external)
      :type 'error))
 
-(ert-deftest cdmt-cpio-image-dired-dired-display-image ()
+(ert-deftest cdmt-newc-cpio-image-dired-dired-display-image ()
   "Test cpio-image-dired-dired-display-image.
 cpio-image-dired-dired-display-image is not yet implemented -- expect an 
error."
   (should-error (cpio-image-dired-dired-display-image)
      :type 'error))
 
-(ert-deftest cdmt-cpio-image-dired-dired-edit-comment-and-tags ()
+(ert-deftest cdmt-newc-cpio-image-dired-dired-edit-comment-and-tags ()
   "Test cpio-image-dired-dired-edit-comment-and-tags.
 cpio-image-dired-dired-edit-comment-and-tags is not yet implemented -- expect 
an error."
   (should-error (cpio-image-dired-dired-edit-comment-and-tags)
      :type 'error))
 
-(ert-deftest cdmt-cpio-image-dired-dired-toggle-marked-thumbs ()
+(ert-deftest cdmt-newc-cpio-image-dired-dired-toggle-marked-thumbs ()
   "Test cpio-image-dired-dired-toggle-marked-thumbs.
 cpio-image-dired-dired-toggle-marked-thumbs is not yet implemented -- expect 
an error."
   (should-error (cpio-image-dired-dired-toggle-marked-thumbs)
      :type 'error))
 
-(ert-deftest cdmt-cpio-image-dired-display-thumb ()
+(ert-deftest cdmt-newc-cpio-image-dired-display-thumb ()
   "Test cpio-image-dired-display-thumb.
 cpio-image-dired-display-thumb is not yet implemented -- expect an error."
   (should-error (cpio-image-dired-display-thumb)
      :type 'error))
 
-(ert-deftest cdmt-cpio-image-dired-display-thumbs ()
+(ert-deftest cdmt-newc-cpio-image-dired-display-thumbs ()
   "Test cpio-image-dired-display-thumbs.
 cpio-image-dired-display-thumbs is not yet implemented -- expect an error."
   (should-error (cpio-image-dired-display-thumbs)
      :type 'error))
 
-(ert-deftest cdmt-cpio-image-dired-display-thumbs-append ()
+(ert-deftest cdmt-newc-cpio-image-dired-display-thumbs-append ()
   "Test cpio-image-dired-display-thumbs-append.
 cpio-image-dired-display-thumbs-append is not yet implemented -- expect an 
error."
   (should-error (cpio-image-dired-display-thumbs-append)
      :type 'error))
 
-(ert-deftest cdmt-cpio-image-dired-jump-thumbnail-buffer ()
+(ert-deftest cdmt-newc-cpio-image-dired-jump-thumbnail-buffer ()
   "Test cpio-image-dired-jump-thumbnail-buffer.
 cpio-image-dired-jump-thumbnail-buffer is not yet implemented -- expect an 
error."
   (should-error (cpio-image-dired-jump-thumbnail-buffer)
      :type 'error))
 
-(ert-deftest cdmt-cpio-image-dired-mark-tagged-entries ()
+(ert-deftest cdmt-newc-cpio-image-dired-mark-tagged-entries ()
   "Test cpio-image-dired-mark-tagged-entries.
 cpio-image-dired-mark-tagged-entries is not yet implemented -- expect an 
error."
   (should-error (cpio-image-dired-mark-tagged-entries)
      :type 'error))
 
-(ert-deftest cdmt-cpio-image-dired-tag-entries ()
+(ert-deftest cdmt-newc-cpio-image-dired-tag-entries ()
   "Test cpio-image-dired-tag-entries.
 cpio-image-dired-tag-entries is not yet implemented -- expect an error."
   (should-error (cpio-image-dired-tag-entries)
      :type 'error))
 
-(ert-deftest cdmt-cpio-mouse-face ()
-  "Test cpio-mouse-face.
-cpio-mouse-face is not yet implemented -- expect an error."
-  (should-error (cpio-mouse-face)
-     :type 'error))
-
 
-(ert-deftest cdmt-revert-buffer ()
+(ert-deftest cdmt-newc-revert-buffer ()
   "Test revert-buffer.
 revert-buffer is not yet implemented -- expect an error."
   (should-error (revert-buffer)
      :type 'error))
 
-(ert-deftest cdmt-cpio-dired-create-directory ()
+(ert-deftest cdmt-newc-cpio-dired-create-directory ()
   "Test cpio-dired-create-directory."
-  (let ((test-name "cdmt-cpio-dired-view-archive")
+  (let ((test-name "cdmt-newc-cpio-dired-view-archive")
         (cpio-archive-buffer)
         (cpio-archive-buffer-contents)
         (cpio-dired-buffer)
@@ -15769,12 +15884,12 @@ revert-buffer is not yet implemented -- expect an 
error."
        (cpio-archive-window)
        (cpio-dired-window))
 
-    (cdmt-reset 'make)
+    (cdmt-newc-reset 'make)
 
     (progn (setq cpio-catalog-contents-before (format "%s" (pp 
(cpio-catalog))))
           (cpio-dired-create-directory "newDirectory")
           (setq cpio-archive-buffer-contents
-                (cdmt-filter-archive-contents
+                (cdmt-newc-filter-archive-contents
                  (with-current-buffer cpio-archive-buffer
                    (buffer-substring-no-properties (point-min) (point-max)))))
           (setq cpio-dired-buffer-contents
@@ -16236,14 +16351,14 @@ newDirectory  (( filename ))
 \\s-+#<marker at 2077 in alphabet_small\\.newc\\.cpio> #<marker at 2197 in 
alphabet_small\\.newc\\.cpio> cpio-mode-entry-unmodified]))
 " cpio-catalog-contents-after)))
     
-    (cdmt-test-save)))
+    (cdmt-newc-test-save)))
 
 
 ;;
 ;; Run tests
 ;;
 
-(ert "^cdmt-cpio-")
+(ert "^cdmt-newc-cpio-")
 
 ;;; cpio-dired-test.el ends here.
 
diff --git a/cpio-dired.el b/cpio-dired.el
index 527d7af..10b9a29 100644
--- a/cpio-dired.el
+++ b/cpio-dired.el
@@ -1,6 +1,6 @@
 ;; -*- coding: utf-8 -*-
 ;;; cpio-dired.el --- UI definition à la dired.
-;      $Id: cpio-dired.el,v 1.4 2018/06/03 14:01:55 doug Exp $ 
+;      $Id: cpio-dired.el,v 1.10 2018/06/17 07:34:12 doug Exp $        
 
 ;; COPYRIGHT
 
@@ -105,6 +105,72 @@ Keep any preceding comments."
 ;; Vars
 ;; 
 
+;;;;;;;;;;;;;;;;
+;; Make the byte compiler happy.
+(defvar *cpio-search-entries*)
+(defvar *cpio-search-entry*)
+(defvar *cpio-search-point*)
+(defvar *cpio-search-re*)
+(defvar cpio-dired-set-modified)
+(defvar cpio-dired-hide-details-mode)
+(defvar *cpio-catalog*)
+(defvar *cpio-padding-modulus*)
+(defvar *cpio-catalog-entry-length*)
+(defvar *cpio-catalog-entry-attrs-idx*)
+(defvar *cpio-catalog-entry-contents-start-idx*)
+(defvar *cpio-catalog-entry-header-start-idx*)
+(declare-function cpio-adjust-trailer "cpio.el")
+(declare-function cpio-catalog "cpio.el")
+(declare-function cpio-contents "cpio.el")
+(declare-function cpio-contents-start "cpio.el")
+(declare-function cpio-create-entry-attrs "cpio.el")
+(declare-function cpio-create-faux-directory-attrs "cpio.el")
+(declare-function cpio-delete-trailer "cpio.el")
+(declare-function cpio-dev-maj "cpio.el")
+(declare-function cpio-dev-maj-to-dev-maj-string "cpio.el")
+(declare-function cpio-dev-min "cpio.el")
+(declare-function cpio-dev-min-to-dev-min-string "cpio.el")
+(declare-function cpio-dired-modified-p "cpio-dired.el")
+(declare-function cpio-dired-set-modified "cpio-dired.el")
+(declare-function cpio-dired-set-unmodified "cpio-dired.el")
+(declare-function cpio-entry "cpio.el")
+(declare-function cpio-entry-attrs "cpio.el")
+(declare-function cpio-entry-contents-start "cpio.el")
+(declare-function cpio-entry-exists-p "cpio.el")
+(declare-function cpio-entry-header-start "cpio.el")
+(declare-function cpio-entry-name "cpio.el")
+(declare-function cpio-entry-name-to-entry-name-string "cpio.el")
+(declare-function cpio-entry-size "cpio.el")
+(declare-function cpio-extract-all "cpio.el")
+(declare-function cpio-filesize-to-filesize-string "cpio.el")
+(declare-function cpio-find-entry "cpio.el")
+(declare-function cpio-gid "cpio.el")
+(declare-function cpio-gid-to-gid-string "cpio.el")
+(declare-function cpio-insert-padded-contents "cpio.el")
+(declare-function cpio-insert-trailer "cpio.el")
+(declare-function cpio-make-header-string "cpio.el")
+(declare-function cpio-mode "cpio.el")
+(declare-function cpio-mode-value "cpio.el")
+(declare-function cpio-move-to-entry "cpio.el")
+(declare-function cpio-mtime "cpio.el")
+(declare-function cpio-mtime-to-mtime-string "cpio.el")
+(declare-function cpio-nlink "cpio.el")
+(declare-function cpio-nlink-to-nlink-string "cpio.el")
+(declare-function cpio-numeric-entry-type "cpio.el")
+(declare-function cpio-set-contents-start "cpio.el")
+(declare-function cpio-set-entry-name "cpio.el")
+(declare-function cpio-set-entry-unmodified "cpio.el")
+(declare-function cpio-set-gid "cpio.el")
+(declare-function cpio-set-mode "cpio.el")
+(declare-function cpio-set-uid "cpio.el")
+(declare-function cpio-sort-catalog "cpio.el")
+(declare-function cpio-uid "cpio.el")
+(declare-function cpio-uid-to-uid-string "cpio.el")
+;; EO byte compiler code.
+;;;;;;;;;;;;;;;;
+
+
+
 (defvar *cpio-dired-permission-flags-regexp* dired-permission-flags-regexp
   "Regular expression to match the permission flags in `ls -l'.")
 
@@ -646,7 +712,7 @@ Run more than one instance of emacs to avoid such 
collisions."
           (kill-buffer target-buffer)
           (setq target-buffer (get-buffer-create (cpio-contents-buffer-name 
entry-name)))
           (with-current-buffer target-buffer
-            (insert (cpio-entry-contents entry-name)))
+            (insert (cpio-contents entry-name)))
           target-buffer)
          (t nil))))
 
@@ -673,7 +739,7 @@ CONTRACT: You're in that archive's buffer."
       (if (null (setq entry-info (assoc entry-name *cpio-catalog*)))
          (error "%s(): Could not get entry information for %s." fname 
entry-name))
       (setq start-marker (aref (cdr entry-info) 1)) ;HEREHERE Shouldn't this 
have an abstraction?
-      (setq end-marker (1+ (round-up (1- (+ (aref (cdr entry-info) 2)
+      (setq end-marker (1+ (cg-round-up (1- (+ (aref (cdr entry-info) 2)
                                            (cpio-entry-size (cpio-entry-attrs 
entry-name)))) *cpio-padding-modulus*)))
       (setq buffer-read-only nil)
       (delete-region start-marker end-marker)
@@ -795,27 +861,31 @@ CONTRACT:
   ;; HEREHERE This has some overlap with (cpio-dired-internal-do-copy).
   (let ((fname "cpio-dired-internal-do-rename")
        (entry (cpio-entry entry-name))
-       (attrs (cpio-entry-attrs entry-name)))
+       (attrs (cpio-entry-attrs entry-name))
+       (mark (cpio-dired-get-mark entry-name)))
     (unless (eq major-mode 'cpio-dired-mode)
       (error "%s(): You're not in a cpio-dired buffer." fname))
-    (cpio-set-entry-name attrs target)
-    (with-current-buffer *cab-parent*
-      (setcar (assoc entry-name *cpio-catalog*) target))
+
     (save-excursion
-      (goto-char (point-min))
-      (re-search-forward (concat " \\(" entry-name "\\)$"))
+      (cpio-dired-goto-entry entry-name)
       (setq buffer-read-only nil)
-      (replace-match target 'fixedcase 'literal nil 1)
+      (delete-region (line-beginning-position) (line-end-position))
+      ;; (cpio-dired-goto-entry) needs entry-name in the catalog,
+      ;; so don't update it until after.
+      (cpio-set-entry-name attrs target)
+      (with-current-buffer *cab-parent*
+       (setcar (assoc entry-name *cpio-catalog*) target))
+      (insert (cpio-dired-format-entry attrs mark))
       (setq buffer-read-only t))
     (cpio-dired-move-to-entry-name)))
 
 (defun cpio-dired-mark-read-regexp (operation)
   "Read a regular expression to match entries for the given OPERATION."
-    (let ((fname "cpio-dired-mark-read-regexp")
-         (regexp (read-regexp
-                  (format "%s on entries matching regexp: " operation)
-                  nil
-                  'dired-regexp-history))
+    (let* ((fname "cpio-dired-mark-read-regexp")
+          (regexp (read-regexp
+                   (format "%s on entries matching regexp: " operation)
+                   nil
+                   'dired-regexp-history))
           (mark-char (cond ((string-equal operation "Copy")
                             cpio-dired-keep-marker-copy)
                            ((string-equal operation "Rename")
@@ -826,7 +896,7 @@ CONTRACT:
           (entry-name))
       ;;(error "%s(): is not yet implemented." fname)
       (save-excursion
-       (gpoto-char (point-min))
+       (goto-char (point-min))
        (while (re-search-forward *cpio-dired-entry-regexp* (point-max) t)
          (setq entry-name (cpio-dired-get-entry-name))
          (if (string-match-p regexp entry-name)
@@ -841,9 +911,7 @@ CONTRACT: You're on the line to be replaced."
        (mark))
     (save-excursion
       (cpio-move-to-entry entry-name)
-      (setq mark (if (= (line-beginning-position) (line-end-position))
-                    ?\s
-                  (string-to-char (buffer-substring (line-beginning-position) 
(1+ (line-beginning-position))))))
+      (setq mark (cpio-dired-get-mark))
       (cpio-dired-delete-dired-line entry-name)
       (setq buffer-read-only nil)
       (insert (cpio-dired-format-entry attrs mark))
@@ -887,7 +955,15 @@ This returns the buffer created."
       (cpio-dired-mode))
     ;; No, I do not yet understand why this must be done
     ;; every time the presentation is updated.
+
+    ;; (with-current-buffer "cpio.el"
+    ;;   kill-buffer-hook)
+
     (cab-register buffer archive-buffer)
+
+    ;; (with-current-buffer "cpio.el"
+    ;;    kill-buffer-hook)
+
     buffer))
 
 (defun cpio-dired-move-to-first-entry ()
@@ -925,6 +1001,22 @@ The line does not include a trailing <new line>."
        (format fmt mark 
                mode-string nlink-string uid-string gid-string 
                filesize-string mtime-string entry-name-string))))
+
+(defun cpio-dired-get-mark (&optional entry-name)
+  "Get the mark, a character, on ENTRY-NAME."
+  (let ((fname "cpio-dired-get-mark")
+       )
+    ;; (error "%s() is not yet implemented" fname)
+    (unless (eq major-mode 'cpio-dired-mode)
+      (error "%s(): only makes sense in a cpio-dired buffer." fname))
+    (unless entry-name
+      (setq entry-name (cpio-dired-get-entry-name)))
+    (save-excursion
+      (cpio-dired-goto-entry entry-name)
+      (string-to-char (buffer-substring (line-beginning-position) 
+                                       (1+ (line-beginning-position)))))
+    ))
+
 
 ;;
 ;; Commands
@@ -981,7 +1073,7 @@ then use the current buffer."
 
           (setq contents-start-marker (point-max-marker))
           (goto-char (point-max))
-          (insert-file filename)
+          (insert-file-contents filename)
 
           (goto-char (point-max))
           (cpio-insert-trailer)
@@ -1070,7 +1162,8 @@ This respects umask(1) as available through 
(default-file-modes)."
        (header-string)
        (header-start)
        (contents-start)
-       (cat-entry))
+       (cat-entry)
+       (namesize))
     (cond (*cab-parent*
           (unless (eq major-mode 'cpio-dired-mode)
             (error "%s(): You're not in a cpio dired buffer." fname))
@@ -1237,7 +1330,8 @@ in the buffer containing the archive."
                                   (current-buffer)))
        (i 0)
        (entry)
-       (attrs))
+       (attrs)
+       (mark))
     (unless (or (eq major-mode 'cpio-dired-mode)
                (eq major-mode 'cpio-mode))
       (error "%s(): major mode is [[%s]]." fname (symbol-name major-mode))
@@ -1245,7 +1339,7 @@ in the buffer containing the archive."
     (cond (*cab-parent*
           (unless entry-names
             (setq entry-names (cpio-dired-get-marked-entries arg)))
-          (setq local-group (strip "\\s-+" local-group))
+          (setq local-group (cg-strip "\\s-+" local-group))
           (with-current-buffer *cab-parent*
             (cpio-dired-do-chgrp arg entry-names local-group 
local-cpio-dired-buffer))
           (cpio-dired-set-modified))
@@ -1265,13 +1359,12 @@ in the buffer containing the archive."
 
                   (with-current-buffer local-cpio-dired-buffer
                     (save-excursion
-                      (goto-char (point-min))
-                      (re-search-forward (concat " " en "$") (point-max) t)
-
+                      (cpio-dired-goto-entry en)
+                      (setq mark (cpio-dired-get-mark))
                       (setq buffer-read-only nil)
                       (delete-region (line-beginning-position)
                                      (line-end-position))
-                      (insert (cpio-dired-format-entry attrs))
+                      (insert (cpio-dired-format-entry attrs mark))
                       (setq buffer-read-only t))))
                 entry-names)
          (cpio-dired-set-modified)))))
@@ -1339,7 +1432,8 @@ into the minibuffer."
                                     cpio-dired-buffer))
        (i 0)
        (entry)
-       (attrs))
+       (attrs)
+       (mark))
     (unless (or (eq major-mode 'cpio-dired-mode)
                (eq major-mode 'cpio-mode))
       (error "%s(): You're in neither a cpio-dired buffer nor a buffer in 
cpio-mode ." fname))
@@ -1354,7 +1448,7 @@ into the minibuffer."
                           (< (point) (point-max)))
                 (push (cpio-dired-get-entry-name) entry-names)
                 (setq i (1+ i)))))
-          (setq local-owner (strip "\\s-+" local-owner))
+          (setq local-owner (cg-strip "\\s-+" local-owner))
           (with-current-buffer *cab-parent*
             (cpio-dired-do-chown arg entry-names local-owner 
cpio-dired-buffer))
           (cpio-dired-set-modified))
@@ -1385,12 +1479,12 @@ into the minibuffer."
 
                   (with-current-buffer local-cpio-dired-buffer
                     (save-excursion
-                      (goto-char (point-min))
-                      (re-search-forward (concat " " en "$") (point-max) t)
+                      (cpio-dired-goto-entry en)
+                      (setq mark (cpio-dired-get-mark))
                       (setq buffer-read-only nil)
                       (delete-region (line-beginning-position)
                                      (line-end-position))
-                      (insert (cpio-dired-format-entry attrs))
+                      (insert (cpio-dired-format-entry attrs mark))
                       (setq buffer-read-only t))))
                 entry-names)
          (cpio-dired-set-modified)))))
@@ -1421,7 +1515,7 @@ that that target should be a directory."
                              *cpio-dired-copy-history*))
     (cpio-delete-trailer)
     (cond ((> (length entries) 1)
-          (setq target (strip-right "/" target 'multiples))
+          (setq target (cg-strip-right "/" target 'multiples))
           ;; First handle the case where the entry exists and looks like a 
directory.
           (cond ((cpio-entry-exists-p target)
                  (setq target-attrs (cpio-entry-attrs target))
@@ -1470,9 +1564,7 @@ Marks win over ARG."
       (error "%s(): You're not in a cpio-dired buffer." fname))
     (mapc (lambda (en)
            (save-excursion
-             (goto-char (point-min))
-             (re-search-forward (concat " " en "$") (point-max) t)
-
+             (cpio-dired-goto-entry en)
              (setq buffer-read-only nil)
              (delete-region (line-beginning-position) (1+ (line-end-position)))
              (setq buffer-read-only t)
@@ -1495,12 +1587,11 @@ non-empty directories is allowed."
     (unless (eq major-mode 'cpio-dired-mode)
       (error "%s(): You're not in a cpio-dired buffer." fname))
     (if (and (null entries)
-            (not (nomessage)))
+            (not nomessage))
        (message "%s(): No entries marked for deletion." fname))
     (mapc (lambda (en)
            (save-excursion
-             (goto-char (point-min))
-             (cond ((re-search-forward (concat " " en "$") (point-max) t)
+             (cond ((cpio-dired-goto-entry en)
                     (setq buffer-read-only nil)
                     (delete-region (line-beginning-position)
                                    (1+ (line-end-position)))
@@ -1628,7 +1719,7 @@ of `dired-dwim-target', which see."
                              nil
                              *cpio-dired-do-rename-history*))
     (cond ((> (length entries) 1)
-          (setq target (strip-right "/" target 'multiples))
+          (setq target (cg-strip-right "/" target 'multiples))
           ;; First handle the case where the entry exists and looks like a 
directory.
           (cond ((cpio-entry-exists-p target)
                  (setq target-attrs (cpio-entry-attrs target))
@@ -1690,6 +1781,7 @@ NOTE: This behavior differs from the corresponding 
function in dired."
   (interactive "sSearch marked entries (regexp): ")
   (let ((fname "cpio-dired-do-search")
        (entry-names (cpio-dired-get-marked-entries))
+       (entry-name)
        (entry-info)
        (entry-attrs)
        (entry-start)
@@ -1901,7 +1993,7 @@ A prefix argument says to unmark or unflag those files 
instead."
       (while (< (point) (point-max))
        (if (string-match-p "\\`#" (cpio-dired-get-entry-name))
            (if unflag-p
-               (cpio-dired-unmark)
+               (cpio-dired-unmark 1)
              (cpio-dired-mark-this-entry cpio-dired-del-marker))
          (cpio-dired-next-line 1))))))
 
@@ -1976,7 +2068,7 @@ in the active region."
       (error "%s(): You're not in a cpio-dired buffer." fname))
     (unless (cpio-entry-exists-p entry)
       (error "%s(): There's no entry [[%s]]." fname entry))
-    (cpio-dired-move-to-first-entry)
+    (goto-char (point-min))
     (re-search-forward (concat " " entry "$"))
     (cpio-dired-move-to-entry-name)))
 
@@ -2024,7 +2116,7 @@ and any affiliated buffers thereof."
   (let ((fname "cpio-dired-kill"))
     (if *cab-parent*
        (cond ((buffer-live-p *cab-parent*)
-              (if (and (called-interactively-p)
+              (if (and (called-interactively-p 'interactive)
                        (cpio-dired-modified-p))
                   (if (y-or-n-p "You've made changes to the archive. Save 
first? ")
                       (cpio-dired-save-archive)))
@@ -2137,7 +2229,8 @@ With prefix argument, unmark or unflag all those entries."
 If the Dired buffer shows multiple directories, this command
 marks the entries listed in the subdirectory that point is in."
   (interactive)
-  (let ((fname "cpio-dired-mark-subdir-entries"))
+  (let ((fname "cpio-dired-mark-subdir-entries")
+       (this-mode))
     (save-excursion
       (cpio-dired-move-to-first-entry)
       (while (< (point) (point-max))
@@ -2241,6 +2334,7 @@ Optional prefix ARG says how many lines to move; default 
is one line."
     (cpio-dired-move-to-entry-name)))
 
 ;; M-}         dired-next-marked-file
+;; * C-n               dired-next-marked-file
 (defun cpio-dired-next-marked-entry (wrap) ;×
   "Move to the previous marked entry.
 If WRAP is non-nil, wrap around to the end of the buffer if we
@@ -2248,16 +2342,6 @@ reach the beginning of the buffer."
   (let ((fname "cpio-dired-next-marked-entry"))
     (error "%s() is not yet implemented" fname)))
 
-;; 
-;; * C-n               dired-next-marked-file
-(defun cpio-dired-next-marked-entry (arg &optional wrap opoint) ;×
-  "Move to the next marked entry.
-If WRAP is non-nil, wrap around to the beginning of the buffer if
-we reach the end."
-  (interactive "p\np")
-  (let ((fname "cpio-dired-next-marked-entry"))
-    (error "%s() is not yet implemented" fname)))
-
 ;; C-M-n               dired-next-subdir
 (defun cpio-dired-next-subdir ()       ;×
   "Go to next subdirectory, regardless of level."
@@ -2281,16 +2365,8 @@ we reach the end."
 
 ;; M-s         Prefix Command
 ;; M-{         dired-prev-marked-file
-(defun cpio-dired-prev-marked-entry (arg wrap) ;×
-  "Move to the previous marked entry.
-If WRAP is non-nil, wrap around to the end of the buffer if we
-reach the beginning of the buffer."
-  (interactive "p\np")
-  (let ((fname "cpio-dired-prev-marked-entry"))
-    (error "%s() is not yet implemented" fname)))
-
 ;; * C-p               dired-prev-marked-file
-(defun cpio-dired-prev-marked-entry (arg &opitonal wrap) ;×
+(defun cpio-dired-prev-marked-entry (arg wrap) ;×
   "Move to the previous marked entry.
 If WRAP is non-nil, wrap around to the end of the buffer if we
 reach the beginning of the buffer."
@@ -2376,24 +2452,24 @@ one.  If non-nil, reset `quit-restore' parameter to 
nil."
                 ;; Do the adjustments backwards to ensure that the resulting 
markers are correct.
                 (reverse *cpio-catalog*))
           ;; Adjust all the entry padding.
-          (mapcar (lambda (cen)
-            (let* ((entry (cdr cen))
-                   (attrs                         (aref entry 
*cpio-catalog-entry-attrs-idx*))
-                   (header-start (marker-position (aref entry 
*cpio-catalog-entry-header-start-idx*)))
-                   (entry-start  (marker-position (aref entry 
*cpio-catalog-entry-contents-start-idx*)))
-                   (cpio-set-entry-unmodified entry)
-                   (header-string (cpio-make-header-string attrs))
-                   (local-where)
-                   (padding-length))
-              (goto-char (+ entry-start (cpio-entry-size attrs)))
-              (setq local-where (mod (1- (point))
-                                     *cpio-padding-modulus*))
-              (cond ((= 0 local-where)
-                     (setq padding-length 0))
-                    (t
-                     (setq padding-length (- *cpio-padding-modulus* 
local-where))))
-              (insert (make-string padding-length ?\0))))
-          *cpio-catalog*)
+          (mapc (lambda (cen)
+                  (let* ((entry (cdr cen))
+                         (attrs                         (aref entry 
*cpio-catalog-entry-attrs-idx*))
+                         (header-start (marker-position (aref entry 
*cpio-catalog-entry-header-start-idx*)))
+                         (entry-start  (marker-position (aref entry 
*cpio-catalog-entry-contents-start-idx*)))
+                         (cpio-set-entry-unmodified entry)
+                         (header-string (cpio-make-header-string attrs))
+                         (local-where)
+                         (padding-length))
+                    (goto-char (+ entry-start (cpio-entry-size attrs)))
+                    (setq local-where (mod (1- (point))
+                                           *cpio-padding-modulus*))
+                    (cond ((= 0 local-where)
+                           (setq padding-length 0))
+                          (t
+                           (setq padding-length (- *cpio-padding-modulus* 
local-where))))
+                    (insert (make-string padding-length ?\0))))
+                *cpio-catalog*)
           (cpio-adjust-trailer)
           (setq buffer-read-only t)
           (basic-save-buffer)))))
@@ -2774,7 +2850,7 @@ to do the work, with arguments IGNORE-AUTO and NOCONFIRM.
 The default function runs the hooks `before-revert-hook' and
 `after-revert-hook'."
   (interactive)
-  (let ((fname "revert-buffer"))
+  (let ((fname "cpio-revert-buffer"))
     (if *cab-parent*
        (if (buffer-live-p *cab-parent*)
            (with-current-buffer *cab-parent*
@@ -2809,7 +2885,9 @@ If ARG is the atom `-', scroll upward by nearly full 
screen."
        (regex (with-current-buffer *cab-parent*
                 *cpio-search-re*))
        (entry-attrs)
-       (contents-size))
+       (contents-size)
+       (contents-start))
+    (error "%s(): is not yet implemented." fname)
     (switch-to-buffer entry-buffer)
     (goto-char search-point)
     (unless (re-search-forward regex (point-max) t)
@@ -2818,17 +2896,26 @@ If ARG is the atom `-', scroll upward by nearly full 
screen."
          (while (setq *cpio-search-entry* (pop *cpio-search-entries*))
            (setq entry-attrs (cpio-entry-attrs *cpio-search-entry*))
            (goto-char (cpio-contents-start *cpio-search-entry*))
-           (cond ((re-search-foward *cpio-search-re* (+ contents-start 
(cpio-entry-size attrs)))
+           (cond ((re-search-forward *cpio-search-re* (+ contents-start 
(cpio-entry-size entry-attrs)))
                   (cpio-dired-find-entry)
                   (goto-char (point-min))
-                  (re-search-forward *cpio-search-re (point-max) t)
-                  (throw 'found-one))
+                  (re-search-forward *cpio-search-re* (point-max) t)
+                  (throw 'found-one t))
                  (t nil)))))
       (unless *cpio-search-entries*
        (setq *cpio-search-entry* nil)
        (setq *cpio-search-re* nil)
        (setq *cpio-search-point* nil)))))
 
+(defun cpio-dired-hide-details-mode ()
+  "Toggle visibility of detailed information in current Dired buffer.
+When this minor mode is enabled, details such as file ownership and
+permissions are hidden from view."
+  (let ((fname "cpio-dired-hide-details-mode")
+       )
+    (error "%s() is not yet implemented" fname)
+    ))
+
 
 ;; 
 ;; mode definition (IF APPROPRIATE)
@@ -2954,7 +3041,7 @@ If ARG is the atom `-', scroll upward by nearly full 
screen."
       ;; HEREHERE This is not the way to do this.
       (define-key cpio-dired-mode-map "g" 'revert-buffer)
       ;; h             describe-mode
-      (define-key cpio-dired-mode-map "h" 'cpio-describe-mode)
+      (define-key cpio-dired-mode-map "h" 'describe-mode)
       ;; i             dired-maybe-insert-subdir
       ;; (define-key cpio-dired-mode-map "i" 'cpio-dired-maybe-insert-subdir) 
;×
       ;; j             dired-goto-file
diff --git a/cpio-entry-contents-mode.el b/cpio-entry-contents-mode.el
index 61b886f..e4acbe3 100644
--- a/cpio-entry-contents-mode.el
+++ b/cpio-entry-contents-mode.el
@@ -1,6 +1,6 @@
 ;; -*- coding: utf-8 -*-
 ;;; cpio-entry-contents-mode.el --- minor mode for editing a cpio-entry's 
contents.
-;      $Id: cpio-entry-contents-mode.el,v 1.4 2018/06/03 14:01:55 doug Exp $   
+;      $Id: cpio-entry-contents-mode.el,v 1.6 2018/06/17 07:34:12 doug Exp $   
 ;; COPYRIGHT
 ;; 
 ;; Copyright © 2017, 2018 Douglas Lewan, address@hidden
@@ -42,7 +42,7 @@
   "Set up buffers and windows for working on entry NAME.
 If NAME is not given, then use 'aa'."
   (interactive "P")
-  (if (and (interactive-p) 
+  (if (and (called-interactively-p 'interactive) 
           arg)
       (setq name (read-string "Name? ")))
   (unless name (setq name "aa"))
@@ -94,6 +94,31 @@ If NAME is not given, then use 'aa'."
 ;; Dependencies
 ;; 
 
+;;;;;;;;;;;;;;;;
+;; Things to make the byte compiler happy.
+(defvar cpio-entry-name)
+(defvar *cpio-catalog-entry-contents-start-idx*)
+(declare-function cpio-contents-start "cpio.el")
+(declare-function cpio-delete-archive-entry "cpio.el")
+(declare-function cpio-dired-find-entry "cpio-dired.el")
+(declare-function cpio-dired-goto-entry "cpio-dired.el")
+(declare-function cpio-entry "cpio.el")
+(declare-function cpio-entry-attrs "cpio.el")
+(declare-function cpio-entry-exists-p "cpio.el")
+(declare-function cpio-entry-header-start "cpio.el")
+(declare-function cpio-insert-padded-contents "cpio.el")
+(declare-function cpio-make-header-string "cpio.el")
+(declare-function cpio-mode "cpio.el")
+(declare-function cpio-present-ala-dired "cpio-dired.el")
+(declare-function cpio-set-entry-modified "cpio.el")
+(declare-function cpio-set-entry-size "cpio.el")
+(declare-function cpio-entry-exists-p "cpio.el")
+(declare-function cpio-dired-goto-entry "cpio-dired.el")
+(declare-function cpio-dired-find-entry "cpio-dired.el")
+;; EO things for the byte compiler.
+;;;;;;;;;;;;;;;;
+
+
 
 ;; 
 ;; Vars
diff --git a/cpio-generic-tests.el b/cpio-generic-tests.el
index 84dcdf3..ebca5dd 100644
--- a/cpio-generic-tests.el
+++ b/cpio-generic-tests.el
@@ -1,6 +1,6 @@
 ;; -*- coding: utf-8 -*-
 ;;; cpio-generic-tests.el --- tests of cpio-generic.el
-;      $Id: cpio-generic-tests.el,v 1.2 2018/05/12 16:36:01 doug Exp $ 
+;      $Id: cpio-generic-tests.el,v 1.3 2018/06/16 18:01:36 doug Exp $ 
 
 ;; COPYRIGHT
 ;; 
@@ -36,6 +36,13 @@
 ;; Dependencies
 ;; 
 
+;;;;;;;;;;;;;;;;
+;; Things to make the byte compiler happy.
+;; EO things for the byte compiler.
+;;;;;;;;;;;;;;;;
+
+
+
 
 ;; 
 ;; Vars
@@ -51,83 +58,6 @@
 ;; Tests
 ;; 
 
-(ert-deftest cpio-generic-drwx-test
-    (let (test-data (list (cons "d---------" (format "%x" (string-to-number 
"0040000" 8)))
-                         (cons "b---------" (format "%x" (string-to-number 
"0060000" 8)))
-                         (cons "c---------" (format "%x" (string-to-number 
"0020000" 8)))
-                         (cons "l---------" (format "%x" (string-to-number 
"0120000" 8)))
-                         (cons "s---------" (format "%x" (string-to-number 
"0140000" 8)))
-                         (cons "-r--------" (format "%x" (string-to-number 
"0000400" 8)))
-                         (cons "--w-------" (format "%x" (string-to-number 
"0000200" 8)))
-                         (cons "---x------" (format "%x" (string-to-number 
"0000100" 8)))
-                         (cons "----r-----" (format "%x" (string-to-number 
"0000040" 8)))
-                         (cons "-----w----" (format "%x" (string-to-number 
"0000020" 8)))
-                         (cons "------x---" (format "%x" (string-to-number 
"0000010" 8)))
-                         (cons "-------r--" (format "%x" (string-to-number 
"0000004" 8)))
-                         (cons "--------w-" (format "%x" (string-to-number 
"0000002" 8)))
-                         (cons "---------x" (format "%x" (string-to-number 
"0000001" 8)))
-                         (cons "---u------" (format "%x" (string-to-number 
"0040000" 8)))
-                         (cons "------g---" (format "%x" (string-to-number 
"0020000" 8)))
-                         (cons "---------s" (format "%x" (string-to-number 
"0010000" 8)))
-                         (cons "drwx------" (format "%x" (+ (string-to-number 
"004000" 8) (string-to-number "700" 8))))
-                         (cons "drw-------" (format "%x" (+ (string-to-number 
"004000" 8) (string-to-number "600" 8))))
-                         (cons "dr-x------" (format "%x" (+ (string-to-number 
"004000" 8) (string-to-number "500" 8))))
-                         (cons "lrwx------" (format "%x" (+ (string-to-number 
"012000" 8) (string-to-number "700" 8))))
-                         (cons "lrw-------" (format "%x" (+ (string-to-number 
"012000" 8) (string-to-number "600" 8))))
-                         (cons "lr-x------" (format "%x" (+ (string-to-number 
"012000" 8) (string-to-number "500" 8))))
-                         (cons "-rwx------" (format "%x" (string-to-number 
"700" 8)))
-                         (cons "-rw-------" (format "%x" (string-to-number 
"600" 8)))
-                         (cons "-r-x------" (format "%x" (string-to-number 
"500" 8)))
-
-                         (cons "d---rwx---" (format "%x" (+ (string-to-number 
"004000" 8) (string-to-number "70" 8))))
-                         (cons "d---rw----" (format "%x" (+ (string-to-number 
"004000" 8) (string-to-number "60" 8))))
-                         (cons "d---r-x---" (format "%x" (+ (string-to-number 
"004000" 8) (string-to-number "50" 8))))
-                         (cons "l---rwx---" (format "%x" (+ (string-to-number 
"012000" 8) (string-to-number "70" 8))))
-                         (cons "l---rw----" (format "%x" (+ (string-to-number 
"012000" 8) (string-to-number "60" 8))))
-                         (cons "l---r-x---" (format "%x" (+ (string-to-number 
"012000" 8) (string-to-number "50" 8))))
-                         (cons "----rwx---" (format "%x" (string-to-number 
"70" 8)))
-                         (cons "----rw----" (format "%x" (string-to-number 
"60" 8)))
-                         (cons "----r-x---" (format "%x" (string-to-number 
"50" 8)))
-
-                         (cons "d------rwx" (format "%x" (+ (string-to-number 
"004000" 8) (string-to-number "7" 8))))
-                         (cons "d------rw-" (format "%x" (+ (string-to-number 
"004000" 8) (string-to-number "6" 8))))
-                         (cons "d------r-x" (format "%x" (+ (string-to-number 
"004000" 8) (string-to-number "5" 8))))
-                         (cons "l------rwx" (format "%x" (+ (string-to-number 
"012000" 8) (string-to-number "7" 8))))
-                         (cons "l------rw-" (format "%x" (+ (string-to-number 
"012000" 8) (string-to-number "6" 8))))
-                         (cons "l------r-x" (format "%x" (+ (string-to-number 
"012000" 8) (string-to-number "5" 8))))
-                         (cons "-------rwx" (format "%x" (string-to-number "7" 
8)))
-                         (cons "-------rw-" (format "%x" (string-to-number "6" 
8)))
-                         (cons "-------r-x" (format "%x" (string-to-number "5" 
8)))
-
-                         (cons "d---------" (format "%x" (+ (string-to-number 
"004000" 8) (string-to-number "0" 8))))
-                         (cons "drw-r-----" (format "%x" (+ (string-to-number 
"004000" 8) (string-to-number "640" 8))))
-                         (cons "drw-r--r--" (format "%x" (+ (string-to-number 
"004000" 8) (string-to-number "644" 8))))
-                         (cons "drw-rw----" (format "%x" (+ (string-to-number 
"004000" 8) (string-to-number "660" 8))))
-                         (cons "drw-rw-r--" (format "%x" (+ (string-to-number 
"004000" 8) (string-to-number "664" 8))))
-                         (cons "drwxr-x--x" (format "%x" (+ (string-to-number 
"004000" 8) (string-to-number "751" 8))))
-                         (cons "drwxrwxr-x" (format "%x" (+ (string-to-number 
"004000" 8) (string-to-number "775" 8))))
-                         (cons "drwxrwxrwx" (format "%x" (+ (string-to-number 
"004000" 8) (string-to-number "777" 8))))
-                         (cons "l---------" (format "%x" (+ (string-to-number 
"012000" 8) (string-to-number "0" 8))))
-                         (cons "lrw-r-----" (format "%x" (+ (string-to-number 
"012000" 8) (string-to-number "640" 8))))
-                         (cons "lrw-r--r--" (format "%x" (+ (string-to-number 
"012000" 8) (string-to-number "644" 8))))
-                         (cons "lrw-rw----" (format "%x" (+ (string-to-number 
"012000" 8) (string-to-number "660" 8))))
-                         (cons "lrw-rw-r--" (format "%x" (+ (string-to-number 
"012000" 8) (string-to-number "664" 8))))
-                         (cons "lrwxr-x--x" (format "%x" (+ (string-to-number 
"012000" 8) (string-to-number "751" 8))))
-                         (cons "lrwxrwxr-x" (format "%x" (+ (string-to-number 
"012000" 8) (string-to-number "775" 8))))
-                         (cons "lrwxrwxrwx" (format "%x" (+ (string-to-number 
"012000" 8) (string-to-number "777" 8))))
-                         (cons "----------" (format "%x" (string-to-number "0" 
8)))
-                         (cons "-rw-r-----" (format "%x" (string-to-number 
"640" 8)))
-                         (cons "-rw-r--r--" (format "%x" (string-to-number 
"644" 8)))
-                         (cons "-rw-rw----" (format "%x" (string-to-number 
"660" 8)))
-                         (cons "-rw-rw-r--" (format "%x" (string-to-number 
"664" 8)))
-                         (cons "-rwxr-x--x" (format "%x" (string-to-number 
"751" 8)))
-                         (cons "-rwxrwxr-x" (format "%x" (string-to-number 
"775" 8)))
-                         (cons "-rwxrwxrwx" (format "%x" (string-to-number 
"777" 8)))))
-      (mapc (lambda (datum)
-             (let ((drwx (car datum))
-                   (hex (cdr datum)))
-               (should (string-equal (drwx-to-hex drwx) hex))))
-           test-data)))
 
 
 ;; 
diff --git a/cpio-generic.el b/cpio-generic.el
index a4e765c..0332103 100644
--- a/cpio-generic.el
+++ b/cpio-generic.el
@@ -1,6 +1,6 @@
 ;; -*- coding: utf-8 -*-
 ;;; cpio-generic.el --- generically useful functions created in support of 
CPIO mode.
-;      $Id: cpio-generic.el,v 1.4 2018/05/21 21:21:16 doug Exp $       
+;      $Id: cpio-generic.el,v 1.7 2018/06/17 07:34:12 doug Exp $       
 
 ;; COPYRIGHT
 ;; 
@@ -52,15 +52,15 @@
 ;; Vars
 ;; 
 
-(defvar *integer-hex-digits* nil)
+(defvar *cg-integer-hex-digits* nil)
 
-(defvar *debugger-re* "^\\s-*(message \"%s(): \\([[:digit:]]+\\)\" fname)$"
+(defvar *cg-debugger-re* "^\\s-*(message \"%s(): \\([[:digit:]]+\\)\" fname)$"
   "RE to match a debugger created by M-x insert-debugger.")
-(setq *debugger-re* "^\\s-*(message \"%s(): \\([[:digit:]]+\\)\" fname)")
+(setq *cg-debugger-re* "^\\s-*(message \"%s(): \\([[:digit:]]+\\)\" fname)")
 
-(defvar *insert-after* nil
+(defvar *cg-insert-after* nil
   "Value used to define that a marker has type 'insert after'.")
-(defvar *insert-before* t
+(defvar *cg-insert-before* t
   "Value used to define that a marker has type 'insert before'.")
 
 
@@ -68,62 +68,62 @@
 ;; Library
 ;; 
 
-(defun integer-hex-digits ()
+(defun cg-integer-hex-digits ()
   "Calculate the number of hex digits that are required to represent any 
integer."
-  (let ((fname "integer-hex-digits")
+  (let ((fname "cg-integer-hex-digits")
        (an-integer most-negative-fixnum)
        (hex-digit-ct 0))
-    (unless *integer-hex-digits*
+    (unless *cg-integer-hex-digits*
        (while (/= 0 an-integer)
          (setq an-integer (lsh an-integer -4))
          (setq hex-digit-ct (1+ hex-digit-ct)))
-       (setq *integer-hex-digits* hex-digit-ct)))
-  *integer-hex-digits*)
+       (setq *cg-integer-hex-digits* hex-digit-ct)))
+  *cg-integer-hex-digits*)
 
-(defun hex-format-pair (pair)
+(defun cg-hex-format-pair (pair)
   "Return a hex formatted representation of PAIR."
-  (let ((fname "hex-format-pair")
-       (hex-digit-count (integer-hex-digits))
+  (let ((fname "cg-hex-format-pair")
+       (hex-digit-count (cg-integer-hex-digits))
        (formatter))
     (setq formatter (format "%%0%dx" hex-digit-count))
     (setq formatter (concat formatter formatter))
     (format formatter (car pair) (cdr pair))))
 
-(defun hex-format-triple (triple)
+(defun cg-hex-format-triple (triple)
   "Return a hex formatted representation of TRIPLE."
-  (let ((fname "hex-format-triple")
-       (hex-digit-count (integer-hex-digits))
+  (let ((fname "cg-hex-format-triple")
+       (hex-digit-count (cg-integer-hex-digits))
        (formatter))
     (setq formatter (format "%%0%dx" hex-digit-count))
     (setq formatter (concat formatter formatter formatter))
     (format formatter (car triple) (cadr triple) (cddr triple))))
 
-(defun round-up (number modulus)
+(defun cg-round-up (number modulus)
   "Round NUMBER up to the next multiple of MODULUS.
 If number ≡ 0 (modulus), then the NUMBER is already rounded up,
 so NUMBER is returned.
 CAVEAT: If NUMBER is negative, then the result may be surprising."
-  (let ((fname "round-up"))
+  (let ((fname "cg-round-up"))
     (unless (and (integerp number) (integerp modulus))
       (error "%s() takes integer arguments." fname))
     (if (= 0 (mod number modulus))
        number
       (* modulus (/ (+ number modulus -1) modulus)))))
 
-(defun pad-right (string width char)
+(defun cg-pad-right (string width char)
   "Pad STRING on the right with CHAR until it is WIDTH characters wide.
 CHAR is typically a character or a single character string, but may be any 
string."
-  (let ((fname "pad-right"))
+  (let ((fname "cg-pad-right"))
     (if (characterp char) (setq char (char-to-string char)))
     (while (< (length string) width)
       (setq string (concat string char)))
     string))
 
-(defun strip-right (re string &optional multiples)
+(defun cg-strip-right (re string &optional multiples)
   "Strip the given RE from the right end of STRING.
 If the optional argument MULTIPLES is not NIL,
 then match as many copies of RE as are there."
-  (let ((fname "strip-right")
+  (let ((fname "cg-strip-right")
        (inner-re (if multiples
                      (concat "\\(" re "\\)+\\'")
                    (concat re "\\'")))
@@ -133,11 +133,11 @@ then match as many copies of RE as are there."
          (setq result (substring string 0 (match-beginning 0)))))
     result))
 
-(defun strip-left (re string &optional multiples)
+(defun cg-strip-left (re string &optional multiples)
   "Strip the given RE from the left end of STRING.
 If the optional argument MULTIPLES is not NIL,
 then match as many copies of RE as are there."
-  (let ((fname "strip-left")
+  (let ((fname "cg-strip-left")
        (inner-re (if multiples
                      (concat "\\`+\\(" re "\\)")
                    (concat "\\`" re)))
@@ -148,20 +148,20 @@ then match as many copies of RE as are there."
          (setq result (substring string (match-end 0)))))
     result))
 
-(defun strip (re string &optional multiples)
+(defun cg-strip (re string &optional multiples)
   "Remove the given RE from both ends of STRING.
 If the optional argument MULTIPLES is not NIL,
 then match as many copies of RE as are there."
   (let ((fname "strip")
        (result))
-    (strip-left re (strip-right re string multiples) multiples)))
+    (cg-strip-left re (cg-strip-right re string multiples) multiples)))
 
 (defun cpio-padded (string modulus pad-char)
   "Pad the given STRING."
   (let* ((fname "cpio-padded")
         (string-length (length string))
-        (desired-length (round-up string-length modulus)))
-    (pad-right string desired-length pad-char)))
+        (desired-length (cg-round-up string-length modulus)))
+    (cg-pad-right string desired-length pad-char)))
 
 (defun cpio-uid-for-owner (owner)
   "Return the uid (an integer) for the given OWNER (a string) if it exists.
@@ -237,7 +237,7 @@ CAVEAT: This deletes any buffer holding /etc/group."
     (save-excursion
       (save-restriction
        (goto-char (point-min))
-       (while (re-search-forward *debugger-re* (point-max) t)
+       (while (re-search-forward *cg-debugger-re* (point-max) t)
          (replace-match (format "%d" (count-lines (point-min) (point)))
                         nil nil nil 1))))
     (save-buffer)))
@@ -250,7 +250,7 @@ and NIL otherwise.
 This function respects narrowing."
   (interactive)
   (let ((fname "remove-debugger"))
-    (cond ((re-search-forward *debugger-re* (point-max) t)
+    (cond ((re-search-forward *cg-debugger-re* (point-max) t)
           (delete-region (match-beginning 0) (match-end 0))
           t)
          (t nil))))
@@ -313,7 +313,7 @@ Well, that's the intent, but, really, it's a hack."
                          lengths)))
         (i 0)
         (j 1))
-    (setq header-string (strip-right "\0" header-string t))
+    (setq header-string (cg-strip-right "\0" header-string t))
     (mapcar (lambda (s)
              (prog1 (substring header-string (nth i stops) (nth j stops))
                (setq i j)
diff --git a/cpio-modes-test.el b/cpio-modes-test.el
index c20bd7a..908c0c5 100644
--- a/cpio-modes-test.el
+++ b/cpio-modes-test.el
@@ -1,6 +1,6 @@
 ;; -*- coding: utf-8 -*-
 ;;; cpio-modes-test.el --- tests of the code in cpio-modes.el.
-;      $Id: cpio-modes-test.el,v 1.2 2018/05/12 16:36:02 doug Exp $    
+;      $Id: cpio-modes-test.el,v 1.3 2018/06/16 18:01:36 doug Exp $    
 
 ;; COPYRIGHT
 ;; 
@@ -206,6 +206,99 @@
   (should (string-equal (cpio-int-mode-to-file-type s-ifreg)  "-"))
   (should (string-equal (cpio-int-mode-to-file-type s-iflnk)  "l")))
 
+(ert-deftest cm-string-to-int-mode ()
+  "Test (cpio-modestring-to-int-mode)."
+  (let ((test-data (list (cons "d---------" #o0040000)
+                        (cons "b---------" #o0060000)
+                        (cons "c---------" #o0020000)
+                        (cons "l---------" #o0120000)
+                        (cons "s---------" #o0140000)
+
+                        (cons "-r--------" #o0100400)
+                        (cons "--w-------" #o0100200)
+                        (cons "---x------" #o0100100)
+                        (cons "----r-----" #o0100040)
+                        (cons "-----w----" #o0100020)
+                        (cons "------x---" #o0100010)
+                        (cons "-------r--" #o0100004)
+                        (cons "--------w-" #o0100002)
+                        (cons "---------x" #o0100001)
+
+                        (cons "---s------" #o0104100)
+                        (cons "---S------" #o0104000)
+                        (cons "------s---" #o0102010)
+                        (cons "------S---" #o0102000)
+                        (cons "---------t" #o0101001)
+                        (cons "---------T" #o0101000)
+
+                        (cons "drwx------" (+ #o0040000 #o700))
+                        (cons "drw-------" (+ #o0040000 #o600))
+                        (cons "dr-x------" (+ #o0040000 #o500))
+                        (cons "lrwx------" (+ #o0120000 #o700))
+                        (cons "lrw-------" (+ #o0120000 #o600))
+                        (cons "lr-x------" (+ #o0120000 #o500))
+                        (cons "-rwx------" (+ #o0100000 #o700))
+                        (cons "-rw-------" (+ #o0100000 #o600))
+                        (cons "-r-x------" (+ #o0100000 #o500))
+                        
+                        (cons "d---rwx---" (+ #o0040000 #o070))
+                        (cons "d---rw----" (+ #o0040000 #o060))
+                        (cons "d---r-x---" (+ #o0040000 #o050))
+                        (cons "l---rwx---" (+ #o0120000 #o070))
+                        (cons "l---rw----" (+ #o0120000 #o060))
+                        (cons "l---r-x---" (+ #o0120000 #o050))
+                        (cons "----rwx---" (+ #o0100000 #o070))
+                        (cons "----rw----" (+ #o0100000 #o060))
+                        (cons "----r-x---" (+ #o0100000 #o050))
+                        
+                        (cons "d------rwx" (+ #o0040000 #o007))
+                        (cons "d------rw-" (+ #o0040000 #o006))
+                        (cons "d------r-x" (+ #o0040000 #o005))
+                        (cons "l------rwx" (+ #o0120000 #o007))
+                        (cons "l------rw-" (+ #o0120000 #o006))
+                        (cons "l------r-x" (+ #o0120000 #o005))
+                        (cons "-------rwx" (+ #o0100000 #o007))
+                        (cons "-------rw-" (+ #o0100000 #o006))
+                        (cons "-------r-x" (+ #o0100000 #o005))
+        
+                        (cons "d---------" (+ #o0040000 #o000))
+                        (cons "drw-r-----" (+ #o0040000 #o640))
+                        (cons "drw-r--r--" (+ #o0040000 #o644))
+                        (cons "drw-rw----" (+ #o0040000 #o660))
+                        (cons "drw-rw-r--" (+ #o0040000 #o664))
+                        (cons "drwxr-x--x" (+ #o0040000 #o751))
+                        (cons "drwxrwxr-x" (+ #o0040000 #o775))
+                        (cons "drwxrwxrwx" (+ #o0040000 #o777))
+
+                        (cons "l---------" (+ #o0120000 #o000))
+                        (cons "lrw-r-----" (+ #o0120000 #o640))
+                        (cons "lrw-r--r--" (+ #o0120000 #o644))
+                        (cons "lrw-rw----" (+ #o0120000 #o660))
+                        (cons "lrw-rw-r--" (+ #o0120000 #o664))
+                        (cons "lrwxr-x--x" (+ #o0120000 #o751))
+                        (cons "lrwxrwxr-x" (+ #o0120000 #o775))
+                        (cons "lrwxrwxrwx" (+ #o0120000 #o777))
+
+                        (cons "----------" (+ #o0100000 #o000))
+                        (cons "-rw-r-----" (+ #o0100000 #o640))
+                        (cons "-rw-r--r--" (+ #o0100000 #o644))
+                        (cons "-rw-rw----" (+ #o0100000 #o660))
+                        (cons "-rw-rw-r--" (+ #o0100000 #o664))
+                        (cons "-rwxr-x--x" (+ #o0100000 #o751))
+                        (cons "-rwxrwxr-x" (+ #o0100000 #o775))
+                        (cons "-rwxrwxrwx" (+ #o0100000 #o777)))))
+
+    (mapc (lambda (datum)
+           (let ((drwx (car datum))
+                 (octal (cdr datum)))
+             (should (progn (message "Expecting [[%s]] --> [[%07o]]." drwx 
octal)
+                            (= (cpio-mode-string-to-int-mode drwx) octal)))))
+         test-data)))
+
+
+(ert "cm-")
+
+
 
 (provide 'cpio-modes)
 ;;; cpio-modes.el ends here
diff --git a/cpio-modes.el b/cpio-modes.el
index 92940f2..21b0ae1 100644
--- a/cpio-modes.el
+++ b/cpio-modes.el
@@ -1,6 +1,6 @@
 ;; -*- coding: utf-8 -*-
 ;;; cpio-modes.el --- handle modes.
-;      $Id: cpio-modes.el,v 1.4 2018/06/03 14:01:55 doug Exp $ 
+;      $Id: cpio-modes.el,v 1.8 2018/06/17 07:34:12 doug Exp $ 
 
 ;; COPYRIGHT
 ;; 
@@ -37,6 +37,13 @@
 ;;
 ;; Dependencies
 ;; 
+(require 'cl)
+
+;;;;;;;;;;;;;;;;
+;; Things to make the byte compiler happy.
+(declare-function cpio-mode-value "cpio.el")
+;; EO things for the byte compiler.
+;;;;;;;;;;;;;;;;
 
 
 ;; 
@@ -46,7 +53,7 @@
 ;; Mode-related bits (adapted from /usr/include/linux/stat.h).
 ;; 
 
-(defconst s-iunk   #o1000000)
+(defconst s-ifunk  #o1000000)
 (defconst s-ifmt   #o0170000)
 (defconst s-ifsock #o0140000)
 (defconst s-iflnk  #o0120000)
@@ -104,9 +111,9 @@ fmt, sock, link, block, character, fifo."
        (mode (cpio-mode-value attrs)))
     (or (= s-ifmt   (logand s-ifmt   mode))
        (= s-ifsock (logand s-ifsock mode))
-       (= s-iflnk  (logand s-iflnk  mode))     ;Does this really belong here? 
I'm writing this to support (cpio-crc-make-checksum). Do links' checksums get 
calculated?
+       (= s-iflnk  (logand s-iflnk  mode))     ;Does this really belong here? 
I'm writing this to support (cpio-crc-make-chksum). Do links' checksums get 
calculated?
        (= s-ifblk  (logand s-ifblk  mode))
-       (= s-ifdir  (logand s-ifdir  mode)) ;Is a directory a special file? 
Again, this has to do with calculating a check sum.
+       (= s-ifdir  (logand s-ifdir  mode)) ;Is a directory a special file? 
Again, this has to do with calculating a checksum.
        (= s-ifchr  (logand s-ifchr  mode))
        (= s-ififo  (logand s-ififo  mode)))))
 
@@ -326,7 +333,7 @@ please let me know."
          ((= exec-char ?x)
           (setq bits (logior bits s-ixusr)))
          ((= exec-char ?s)
-          (setq bits (logior bits s-ixuser s-isuid)))
+          (setq bits (logior bits s-ixusr s-isuid)))
          ((= exec-char ?S)
           (setq bits (logior bits s-isuid))))
     bits))
@@ -361,7 +368,11 @@ please let me know."
 
 (defun cpio-other-chars-to-bits (chars)
   "Interpret CHARS as other mode bits."
-  (let ((fname "cpio-other-chars-to-bits"))
+  (let ((fname "cpio-other-chars-to-bits")
+       (read-char)
+       (write-char)
+       (exec-char)
+       (bits 0))
     (unless (and (listp chars)
                 (= (length chars) 3)
                 (member (setq read-char  (nth 0 chars)) '(?- ?r))
diff --git a/cpio-newc.el b/cpio-newc.el
index e3f62e9..dcf0ff7 100644
--- a/cpio-newc.el
+++ b/cpio-newc.el
@@ -1,6 +1,6 @@
 ;; -*- coding: utf-8 -*-
 ;;; cpio-newc.el --- handle portable SVR4 cpio entry header formats.
-;      $Id: cpio-newc.el,v 1.8 2018/06/09 05:20:12 doug Exp $  
+;      $Id: cpio-newc.el,v 1.11 2018/06/17 07:34:12 doug Exp $ 
 
 ;; COPYRIGHT
 ;; 
@@ -53,8 +53,32 @@
 ;;
 ;; Dependencies
 ;; 
-(require 'cpio-generic)
+(condition-case err
+    (require 'cpio-generic)
+    (error
+     (if (file-exists-p (concat default-directory "cpio-generic.elc"))
+        (load-file (concat default-directory "cpio-generic.elc"))
+       (load-file (concat default-directory "cpio-generic.el")))))
 
+;;;;;;;;;;;;;;;;
+;; Things to make the byte compiler happy.
+(defvar *cpio-catalog*)
+(defvar *cpio-padding-modulus*)
+(declare-function cpio-entry-name "cpio.el")
+(declare-function cpio-ino "cpio.el")
+(declare-function cpio-mode-value "cpio.el")
+(declare-function cpio-uid "cpio.el")
+(declare-function cpio-gid "cpio.el")
+(declare-function cpio-nlink "cpio.el")
+(declare-function cpio-mtime "cpio.el")
+(declare-function cpio-entry-size "cpio.el")
+(declare-function cpio-dev-maj "cpio.el")
+(declare-function cpio-dev-min "cpio.el")
+(declare-function cpio-entry-attrs-from-catalog-entry "cpio.el")
+(declare-function cpio-contents-start "cpio.el")
+(declare-function cpio-entry-attrs "cpio.el")
+;; EO things for the byte compiler.
+;;;;;;;;;;;;;;;;
 
 ;; 
 ;; Vars
@@ -384,7 +408,7 @@ This function does NOT get the contents."
     (if (= 0 (mod (setq total (+ 1 *cpio-newc-name-field-offset* 
local-namesize)) 
                  *cpio-newc-padding-modulus*))
        (setq total (1+ total)))
-    (round-up total *cpio-newc-padding-modulus*)))
+    (cg-round-up total *cpio-newc-padding-modulus*)))
 
 (defun cpio-newc-parse-magic (header-string)
   "Get the magic field from HEADER-STRING."
@@ -533,11 +557,11 @@ This function does NOT include the contents."
                                 (cpio-newc-make-chksum   attrs)
                                 name
                                 "\0"))
-    (setq header-string (pad-right header-string (round-up (length 
header-string) *cpio-newc-padding-modulus*) "\0"))
+    (setq header-string (cg-pad-right header-string (cg-round-up (length 
header-string) *cpio-newc-padding-modulus*) "\0"))
     ;; Check (at least during development).
     (if (string-match-p *cpio-newc-header-re* header-string)
        header-string
-      (error "%s(): I built a bad header: [[%s]]" fname header))))
+      (error "%s(): I built a bad header: [[%s]]" fname header-string))))
 
 (defun cpio-newc-make-magic (attrs)
   "Return the NEWC magic header string"
@@ -547,69 +571,35 @@ This function does NOT include the contents."
 (defun cpio-newc-make-ino (attrs)
   "Return a string value for the inode from the file attributes ATTRS."
   (let ((fname "cpio-newc-make-ino")
-       (ino (aref attrs *cpio-ino-parsed-idx*)))
-    (cond ((numberp ino)
-          (format "%08X" ino))
-         ((consp ino)
-          (cond ((cddr ino)
-                 (cpio-newc-BIG-inode-to-string))
-                ((cdr ino)
-                 (cpio-newc-big-inode-to-string))
-                (t (error "Bad inode value: [[%s]]." ino))))
-         (t (error "Bad inode value: [[%s]]." ino)))))
-
-(defun cpio-newc-BIG-inode-to-string (ino)
-  "Convert the BIG inode format (HIGH MIDDLE . LOW) to a printable integer.
-Since we're writing a NEWC CPIO header it must be < 8 digits.
-N.B. On my 64 bit machine most-positive-fixnum is 2305843009213693951.
-I likely won't need this, but someone might."
-  ;; There's a contract here that INO is a triple of integers.
-  (let ((fname "cpio-newc-BIG-inode-to-string"))
-    (hex-format-triple ino)))
-
-(defun cpio-newc-big-inode-to-string (ino)
-  "Convert the big inode format (HIGH . LOW) to a printable integer.
-Since we're writing a NEWC CPIO header it must be < 8 digits.
-N.B. On my 64 bit machine most-positive-fixnum is 2305843009213693951.
-I likely won't need this, but someone might."
-  (let ((fname "cpio-newc-big-inode-to-string")
-       (hex-digit-count (integer-hex-digits)))
-    (hex-format-pair ino)))
+       (ino (cpio-ino attrs)))
+    (format "%08X" ino)))
 
 (defun cpio-newc-make-mode (attrs)
   "Return a string value for the mode from the file attributes ATTRS."
   (let ((fname "cpio-newc-make-mode"))
-    (format "%08X" (aref attrs *cpio-mode-parsed-idx*))))
+    (format "%08X" (cpio-mode-value attrs))))
 
 (defun cpio-newc-make-uid (attrs)
   "Return an integer string value for the UID from the file attributes ATTRS."
   (let ((fname "cpio-newc-make-uid")
-       (uid (aref attrs *cpio-uid-parsed-idx*)))
-    (cond ((numberp uid)
-          (format "%08X" uid))
-         ((string-match-p "\\`[[:graph:]]\\'" uid)
-          (cpio-look-up-uid uid))
-         (t (error "Bad UID: [[%s]]" uid)))))
+       (uid (cpio-uid attrs)))
+    (format "%08X" uid)))
 
 (defun cpio-newc-make-gid (attrs)
   "Return an integer string value for the GID from the file attributes ATTRS."
   (let ((fname "cpio-newc-make-gid")
-       (gid (aref attrs *cpio-gid-parsed-idx*)))
-    (cond ((numberp gid)
-          (format "%08X" gid))
-         ((string-match-p "\\`[[:graph:]]\\'" gid)
-          (cpio-look-up-gid gid))
-         (t (error "Bad GID: [[%s]]" gid)))))
+       (gid (cpio-gid attrs)))
+    (format "%08X" gid)))
 
 (defun cpio-newc-make-nlink (attrs)
   "Return an integer string value for the number of links from the file 
attributes ATTRS."
   (let ((fname "cpio-newc-make-nlink"))
-    (format "%08X" (aref attrs *cpio-nlink-parsed-idx*))))
+    (format "%08X" (cpio-nlink attrs))))
 
 (defun cpio-newc-make-mtime (attrs)
   "Return a string value for the mod time from the file attributes ATTRS."
   (let ((fname "cpio-newc-make-mtime")
-       (mod-time (aref attrs *cpio-mtime-parsed-idx*)))
+       (mod-time (cpio-mtime attrs)))
     ;; We're only about 1/2 way through using this up it seems.
     ;; Still, time will eventually overflow a 32 bit unsigned integer.
     (format "%08X" (float-time mod-time))))
@@ -617,44 +607,22 @@ I likely won't need this, but someone might."
 (defun cpio-newc-make-filesize (attrs)
   "Return an 8 digit hex string for the filesize attribute among the given 
ATTRs."
   (let ((fname "cpio-newc-make-filesize"))
-    (format "%08X" (aref attrs *cpio-entry-size-parsed-idx*))))
+    (format "%08X" (cpio-entry-size attrs))))
 
 (defun cpio-newc-make-dev-maj (attrs)
-  "Return a string value for the WWWW from the file attributes ATTRS."
+  "Return a string value for the major device from the file attributes ATTRS."
   (let ((fname "cpio-newc-make-dev-maj")
-       (dev (aref attrs 11)))
-    (cond ((numberp dev)
-          (format "%08X" (logand (lsh dev -8) #xff)))
-         ;; The documenation for (file-attributes) says that this is handled
-         ;; like the inode.
-         ((consp dev)
-          (cond ((cddr dev)
-                 (cpio-BIG-inode-to-string))
-                ((cdr dev)
-                 (cpio-big-inode-to-string))
-                (t (error "Bad dev value: [[%s]]." ino))))
-         (t (error "Bad dev value: [[%s]]." ino)))))
+       (dev (cpio-dev-maj attrs)))
+    (format "%08X" dev)))
 
 (defun cpio-newc-make-dev-min (attrs)
-  "Return a string value for the WWWW from the file attributes ATTRS."
+  "Return a string value for the minor device from the file attributes ATTRS."
   (let ((fname "cpio-newc-make-dev-min")
-       (dev (aref attrs 11)))
-    (cond ((numberp dev)
-          (format "%08X" (logand dev #xff)))
-         ;; The documenation for (file-attributes) says that this is handled
-         ;; like the inode.
-         ;; The calculations below are, nonetheless, out of synch
-         ;; with the cpio(1GNU) code.
-         ((consp dev)
-          (cond ((cddr dev)
-                 (cpio-BIG-inode-to-string))
-                ((cdr dev)
-                 (cpio-big-inode-to-string))
-                (t (error "Bad dev value: [[%s]]." ino))))
-         (t (error "Bad dev value: [[%s]]." ino)))))
+       (dev (cpio-dev-min attrs)))
+    (format "%08X" dev)))
 
 (defun cpio-newc-make-rdev-maj (attrs)
-  "Return a string value for the WWWW from the file attributes ATTRS."
+  "Return a string value for the major rdev from the file attributes ATTRS."
   (let ((fname "cpio-newc-make-rdev-maj")
        (rdev))
     ;; MAINTENANCE Every concrete example I look at has this value for 
rdev-maj.
@@ -663,7 +631,7 @@ I likely won't need this, but someone might."
     "00000000"))
 
 (defun cpio-newc-make-rdev-min (attrs)
-  "Return a string value for the WWWW from the file attributes ATTRS."
+  "Return a string value for the minor rdev from the file attributes ATTRS."
   (let ((fname "cpio-newc-make-rdev-min"))
     ;; MAINTENANCE Every concrete example I look at has this value for 
rdev-maj.
     ;; See (cpio-newc-make-rdev-maj) for more information.
@@ -688,7 +656,8 @@ I likely won't need this, but someone might."
   "Parse the newc cpio header that begins at point.
 If there is no header there, then signal an error."
   (let ((fname "cpio-newc-parse-header-at-point"))
-    (unless (looking-at-p *cpio-newc-header-re*) (error "%s(): point is not 
looking at a newc header."))
+    (unless (looking-at-p *cpio-newc-header-re*)
+      (error "%s(): point is not looking at a newc header." fname))
     (cpio-newc-parse-header (match-string-no-properties 0))))
 
 (defun cpio-newc-goto-next-header ()
@@ -736,9 +705,9 @@ CAVEAT: This respects neither narrowing nor the point."
             ;; A little bit of arithmétic gymnastics here
             ;; because cpio, being written in C, starts counting at 0, but
             ;; emacs' points start at 1.
-            (goto-char (1+ (round-up (1- header-end) *cpio-padding-modulus*)))
+            (goto-char (1+ (cg-round-up (1- header-end) 
*cpio-padding-modulus*)))
             (setq contents-start (point-marker))
-            (set-marker-insertion-type contents-start *insert-after*)
+            (set-marker-insertion-type contents-start *cg-insert-after*)
             ;; It feels like I really want a function for getting the contents.
             ;; But it's not obvious what is simpler or appropriately more 
general
             ;; than this one-liner.
@@ -761,8 +730,8 @@ for the current cpio archive."
   (let ((fname "cpio-newc-start-of-trailer")
        (end-of-contents 0))
     (mapc (lambda (ce)
-           (let ((attrs (cpio-entry-attrs-from-catalog-entry e)))
-             (setq end-of-contents (+ (cpio-entry-size attrs) 
(cpio-contents-start e)))))
+           (let ((attrs (cpio-entry-attrs-from-catalog-entry ce)))
+             (setq end-of-contents (+ (cpio-entry-size attrs) 
(cpio-contents-start ce)))))
          *cpio-catalog*)
     end-of-contents))
 
@@ -771,7 +740,7 @@ for the current cpio archive."
 once the TRAILER is written and padded."
   (let ((fname "cpio-newc-end-of-archive")
        (end-of-contents (cpio-newc-start-of-trailer)))
-    (round-up (+ end-of-contents (length *cpio-newc-trailer*)) 
*cpio-newc-blocksize*)))
+    (cg-round-up (+ end-of-contents (length *cpio-newc-trailer*)) 
*cpio-newc-blocksize*)))
 
 (defun cpio-newc-adjust-trailer ()
   "Replace thed current trailer in the current cpio newc archive."
@@ -790,7 +759,7 @@ once the TRAILER is written and padded."
     (insert base-trailer)
     (goto-char (point-max))
     ;; ...with padding.
-    (setq len (round-up (1- (point)) *cpio-newc-blocksize*))
+    (setq len (cg-round-up (1- (point)) *cpio-newc-blocksize*))
     (setq len (1+ (- len (point))))
     (insert (make-string len ?\0))
     (setq buffer-read-only t)))
@@ -816,6 +785,13 @@ once the TRAILER is written and padded."
     (delete-region (point) (point-max))
     (setq buffer-read-only t)))
 
+(defun cpio-newc-make-chksum-for-file (filename)
+  "Return the checksum for FILENAME."
+  (let ((fname "cpio-newc-make-chksum-for-file")
+       )
+    ;; (error "%s() is not yet implemented" fname)
+    0
+    ))
 
 ;; 
 ;; Test and other development assistance.
@@ -844,10 +820,10 @@ That is show their names and octal and decimal values."
                             "name")))
     (apply 'concat (mapcar* (lambda (name value)
                              (setq name name)
-                                   ;; (pad-right name 12 " "))
+                                   ;; (cg-pad-right name 12 " "))
                              (format "%s\t%s\t%o\t%d\n"
                                      name
-                                     (pad-right value 8 " ")
+                                     (cg-pad-right value 8 " ")
                                      (string-to-number value 16)
                                      (string-to-number value 16)))
                            header-fields header-contents))))
@@ -869,7 +845,12 @@ what the proper way to do it is."
        (soh)
        (sofn)
        (eoh)
+       (eon)
+       (hpad)
        (filesize 0)
+       (soc)
+       (eoc)
+       (cpad)
        (name "")
        (ct 0)
        (interval 0))
diff --git a/cpio-odc.el b/cpio-odc.el
index 8964f65..05ccc27 100644
--- a/cpio-odc.el
+++ b/cpio-odc.el
@@ -1,6 +1,6 @@
 ;; -*- coding: utf-8 -*-
 ;;; cpio-odc.el --- handle old portable cpio entry header format
-;      $Id: cpio-odc.el,v 1.6 2018/06/03 14:01:55 doug Exp $   
+;      $Id: cpio-odc.el,v 1.9 2018/06/17 07:34:12 doug Exp $   
 
 ;; COPYRIGHT
 ;; 
@@ -39,6 +39,40 @@
 ;; 
 (load-file (concat default-directory "cpio-generic.el"))
 
+;;;;;;;;;;;;;;;;
+;; Things to make the byte compiler happy.
+(defvar *cpio-catalog*)
+(defvar *cpio-odc-dev-field-offset*)
+(defvar *cpio-odc-filesize-field-offset*)
+(defvar *cpio-odc-gid-field-offset*)
+(defvar *cpio-odc-ino-field-offset*)
+(defvar *cpio-odc-magic-field-offset*)
+(defvar *cpio-odc-mode-field-offset*)
+(defvar *cpio-odc-mtime-field-offset*)
+(defvar *cpio-odc-name-field-offset*)
+(defvar *cpio-odc-namesize-field-offset*)
+(defvar *cpio-odc-nlink-field-offset*)
+(defvar *cpio-odc-rdev-field-offset*)
+(defvar *cpio-odc-uid-field-offset*)
+(declare-function cpio-contents-start "cpio.el")
+(declare-function cpio-dev-maj "cpio.el")
+(declare-function cpio-entry-attrs-from-catalog-entry "cpio.el")
+(declare-function cpio-entry-name "cpio.el")
+(declare-function cpio-entry-size "cpio.el")
+(declare-function cpio-gid "cpio.el")
+(declare-function cpio-ino "cpio.el")
+(declare-function cpio-mode-value "cpio.el")
+(declare-function cpio-mtime "cpio.el")
+(declare-function cpio-nlink "cpio.el")
+(declare-function cpio-rdev-maj "cpio.el")
+(declare-function cpio-uid "cpio.el")
+(declare-function cpio-entry-attrs "cpio.el")
+
+
+
+;; EO things for the byte compiler.
+;;;;;;;;;;;;;;;;
+
 
 ;; 
 ;; Vars
@@ -456,7 +490,7 @@ This function does NOT include the contents."
                                 (cpio-odc-make-filesize attrs)
                                 name
                                 "\0"))
-    ;; (setq header-string (pad-right header-string (round-up (length 
header-string) *cpio-odc-padding-modulus*) "\0"))
+    ;; (setq header-string (cg-pad-right header-string (cg-round-up (length 
header-string) *cpio-odc-padding-modulus*) "\0"))
     ;; Check (at least during development).
     (if (string-match-p *cpio-odc-header-re* header-string)
        header-string
@@ -471,34 +505,7 @@ This function does NOT include the contents."
   "Return a string value for the inode from the file attributes ATTRS."
   (let ((fname "cpio-odc-make-ino")
        (ino (cpio-ino attrs)))
-    (cond ((numberp ino)
-          (format "%06o" ino))
-         ((consp ino)
-          (cond ((cddr ino)
-                 (cpio-odc-BIG-inode-to-string))
-                ((cdr ino)
-                 (cpio-odc-big-inode-to-string))
-                (t (error "Bad inode value: [[%s]]." ino))))
-         (t (error "Bad inode value: [[%s]]." ino)))))
-
-(defun cpio-odc-BIG-inode-to-string (ino)
-  "Convert the BIG inode format (HIGH MIDDLE . LOW) to a printable integer.
-Since we're writing a ODC CPIO header it must be < 8 digits.
-N.B. On my 64 bit machine most-positive-fixnum is 2305843009213693951.
-I likely won't need this, but someone might."
-  ;; There's a contract here that INO is a triple of integers.
-  (let ((fname "cpio-odc-BIG-inode-to-string"))
-    (hex-format-triple ino)))
-
-(defun cpio-odc-big-inode-to-string (ino)
-  "Convert the big inode format (HIGH . LOW) to a printable integer.
-Since we're writing a ODC CPIO header it must be < 8 digits.
-N.B. On my 64 bit machine most-positive-fixnum is 2305843009213693951.
-I likely won't need this, but someone might."
-  (let ((fname "cpio-odc-big-inode-to-string")
-       (hex-digit-count (integer-hex-digits))
-       (formatter))
-    (hex-format-pair ino)))
+    (format "%06o" ino)))
 
 (defun cpio-odc-make-mode (attrs)
   "Return a string value for the mode from the file attributes ATTRS."
@@ -509,21 +516,13 @@ I likely won't need this, but someone might."
   "Return an integer string value for the UID from the file attributes ATTRS."
   (let ((fname "cpio-odc-make-uid")
        (uid (cpio-uid attrs)))
-    (cond ((numberp uid)
-          (format "%06o" uid))
-         ((string-match-p "\\`[[:graph:]]\\'" uid)
-          (cpio-look-up-uid uid))
-         (t (error "Bad UID: [[%s]]" uid)))))
+    (format "%06o" uid)))
 
 (defun cpio-odc-make-gid (attrs)
   "Return an integer string value for the GID from the file attributes ATTRS."
   (let ((fname "cpio-odc-make-gid")
        (gid (cpio-gid attrs)))
-    (cond ((numberp gid)
-          (format "%06o" gid))
-         ((string-match-p "\\`[[:graph:]]\\'" gid)
-          (cpio-look-up-gid gid))
-         (t (error "Bad GID: [[%s]]" gid)))))
+    (format "%06o" gid)))
 
 (defun cpio-odc-make-nlink (attrs)
   "Return an integer string value for the number of links from the file 
attributes ATTRS."
@@ -545,20 +544,10 @@ I likely won't need this, but someone might."
   "Return a string value for the dev from the file attributes ATTRS."
   (let ((fname "cpio-odc-make-dev")
        (dev (cpio-dev-maj attrs)))
-    (cond ((numberp dev)
-          (format "%06o" (logand (lsh dev -8) #xff)))
-         ;; The documenation for (file-attributes) says that this is handled
-         ;; like the inode.
-         ((consp dev)
-          (cond ((cddr dev)
-                 (cpio-BIG-inode-to-string))
-                ((cdr dev)
-                 (cpio-big-inode-to-string))
-                (t (error "Bad dev value: [[%s]]." ino))))
-         (t (error "Bad dev value: [[%s]]." ino)))))
+    (format "%06o" dev)))
 
 (defun cpio-odc-make-rdev (attrs)
-  "Return a string value for the WWWW from the file attributes ATTRS."
+  "Return a string value for the rdev from the file attributes ATTRS."
   (let ((fname "cpio-odc-make-rdev")
        (rdev))
     (format "%06o" (cpio-rdev-maj attrs))))
@@ -573,7 +562,8 @@ I likely won't need this, but someone might."
   "Parse the odc cpio header that begins at point.
 If there is no header there, then signal an error."
   (let ((fname "cpio-odc-parse-header-at-point"))
-    (unless (looking-at-p *cpio-odc-header-re*) (error "%s(): point is not 
looking at a odc header."))
+    (unless (looking-at-p *cpio-odc-header-re*)
+      (error "%s(): point is not looking at a odc header." fname))
     (cpio-odc-parse-header (match-string-no-properties 0))))
 
 (defun cpio-odc-goto-next-header ()
@@ -623,7 +613,7 @@ CAVEAT: This respects neither narrowing nor the point."
             ;; emacs' points start at 1.
             (goto-char header-end)
             (setq contents-start (point-marker))
-            (set-marker-insertion-type contents-start *insert-after*)
+            (set-marker-insertion-type contents-start *cg-insert-after*)
             ;; It feels like I really want a function for getting the contents.
             ;; But it's not obvious what is simpler or appropriately more 
general
             ;; than this one-liner.
@@ -646,8 +636,8 @@ for the current cpio archive."
   (let ((fname "cpio-odc-start-of-trailer")
        (end-of-contents 0))
     (mapc (lambda (ce)
-           (let ((attrs (cpio-entry-attrs-from-catalog-entry e)))
-             (setq end-of-contents (+ (cpio-entry-size attrs) 
(cpio-contents-start e)))))
+           (let ((attrs (cpio-entry-attrs-from-catalog-entry ce)))
+             (setq end-of-contents (+ (cpio-entry-size attrs) 
(cpio-contents-start ce)))))
          *cpio-catalog*)
     end-of-contents))
 
@@ -656,7 +646,7 @@ for the current cpio archive."
 once the TRAILER is written and padded."
   (let ((fname "cpio-odc-end-of-archive")
        (end-of-contents (cpio-odc-start-of-trailer)))
-    (round-up (+ end-of-contents (length *cpio-odc-trailer*)) 
*cpio-odc-blocksize*)))
+    (cg-round-up (+ end-of-contents (length *cpio-odc-trailer*)) 
*cpio-odc-blocksize*)))
 
 (defun cpio-odc-adjust-trailer ()
   "Replace thed current trailer in the current cpio odc archive."
@@ -675,7 +665,7 @@ once the TRAILER is written and padded."
     (insert base-trailer)
     (goto-char (point-max))
     ;; ...with padding.
-    (setq len (round-up (1- (point)) *cpio-odc-blocksize*))
+    (setq len (cg-round-up (1- (point)) *cpio-odc-blocksize*))
     (setq len (1+ (- len (point))))
     (insert (make-string len ?\0))
     (setq buffer-read-only t)))
diff --git a/cpio.el b/cpio.el
index cd17071..c209ea5 100644
--- a/cpio.el
+++ b/cpio.el
@@ -1,6 +1,6 @@
 ;; -*- coding: utf-8 -*-
 ;;; cpio.el --- cpio-mode for emacs
-;      $Id: cpio.el,v 1.8 2018/06/09 05:20:12 doug Exp $       
+;      $Id: cpio.el,v 1.13 2018/06/17 07:34:12 doug Exp $      
 
 ;; COPYRIGHT 2015, 2017, 2018 Douglas Lewan, address@hidden
 
@@ -18,8 +18,26 @@
 ;; NAME: cpio-mode
 ;; 
 ;; USAGE:
-;;     (load-library 'cpio-mode)
+;;     (load-library 'cpio-mode) OR
 ;;     (require 'cpio-mode)
+;;
+;;     Once loaded, there are several ways to invoke cpio-mode:
+;; 
+;;     • M-x cpio-mode
+;; 
+;;     • If you want to put a cpio-archive into cpio-mode autmatically,
+;;       then add the following to your .emacs:
+;;         (add-hook 'find-file-hook 'cpio-mode-find-file-hook)
+;;
+;;     • Another way to do this would be to modify magic-mode-alist
+;;         (setq magic-mode-alist
+;;              (add-to-list 'magic-mode-alist
+;;                           (cons 'cpio-discern-archive-type 'cpio-mode))).
+;;
+;;     • If you only care about archives that end .cpio,
+;;       then the following would also work:
+;;         (setq auto-mode-alist
+;;               (add-to-list 'auto-mode-alist (cons "\\.cpio\\'" 
'cpio-mode))).
 ;; 
 ;; DESCRIPTION:
 ;;     cpio-mode presents a cpio archive as if it were a directory
@@ -205,49 +223,115 @@
 ;; Dependencies
 ;; 
 
+;;;;;;;;;;;;;;;;
+;; Things to make the byte compiler happy.
+(defvar *cpio-catalog-entry-attrs-idx*)
+(defvar *cpio-catalog-entry-contents-start-idx*)
+(defvar *cpio-catalog-entry-header-start-idx*)
+(defvar *cpio-catalog-entry-length*)
+(defvar *cpio-catalog-entry-modified-flag-idx*)
+(defvar *cpio-chksum-parsed-idx*)
+(defvar *cpio-crc-header-re*)
+(defvar *cpio-crc-padding-char*)
+(defvar *cpio-crc-padding-modulus*)
+(defvar *cpio-crc-padding-str*)
+(defvar *cpio-dev-maj-parsed-idx*)
+(defvar *cpio-dev-min-parsed-idx*)
+(defvar *cpio-entry-size-parsed-idx*)
+(defvar *cpio-gid-parsed-idx*)
+(defvar *cpio-ino-parsed-idx*)
+(defvar *cpio-mode-parsed-idx*)
+(defvar *cpio-mtime-parsed-idx*)
+(defvar *cpio-name-parsed-idx*)
+(defvar *cpio-namesize-parsed-idx*)
+(defvar *cpio-nlink-parsed-idx*)
+(defvar *cpio-odc-header-re*)
+(defvar *cpio-odc-padding-char*)
+(defvar *cpio-odc-padding-modulus*)
+(defvar *cpio-odc-padding-str*)
+(defvar *cpio-parsed-header-length*)
+(defvar *cpio-rdev-maj-parsed-idx*)
+(defvar *cpio-rdev-min-parsed-idx*)
+(defvar *cpio-uid-parsed-idx*)
+(defvar cpio-entry-name)
+(defvar cpio-try-names)
+(declare-function cpio-contents-buffer-name "cpio-dired.el")
+(declare-function cpio-entry-contents-mode "cpio-entry-contents-mode.el")
+(declare-function cpio-dired-move-to-first-entry "cpio-dired.el")
+(declare-function cpio-dired-next-line "cpio-dired.el")
+(declare-function cpio-dired-buffer-name "cpio-dired.el")
+(declare-function cpio-present-ala-dired "cpio-dired.el")
+;; EO things for the byte compiler.
+;;;;;;;;;;;;;;;;
+
 ;; During development I need access to local files.
 (setq load-path (add-to-list 'load-path (substring default-directory -1)))
 
 (require 'dired)
 
 ;; (require 'cpio-generic)
-(load (concat default-directory "cpio-generic.el"))
-(message "Loaded cpio-generic.el.")
+(if (file-exists-p (concat default-directory "cpio-generic.elc"))
+    (load (concat default-directory "cpio-generic.elc"))
+  (load (concat default-directory "cpio-generic.el")))
+(message "Loaded cpio-generic.")
 ;; (require 'cpio-modes)
-(load (concat default-directory "cpio-modes.el"))
-(message "Loaded cpio-modes.el.")
+(if (file-exists-p (concat default-directory "cpio-modes.elc"))
+    (load (concat default-directory "cpio-modes.elc"))
+  (load (concat default-directory "cpio-modes.el")))
+(message "Loaded cpio-modes.")
 ;; (require 'cpio-affiliated-buffers)
-(load (concat default-directory "cpio-affiliated-buffers"))
-(message "Loaded cpio-affiliated-buffers.el.")
+(if (file-exists-p (concat default-directory "cpio-affiliated-buffers.elc"))
+    (load (concat default-directory "cpio-affiliated-buffers.elc"))
+  (load (concat default-directory "cpio-affiliated-buffers.el")))
+(message "Loaded cpio-affiliated-buffers.")
 
 ;; (require 'cpio-bin)
-(load (concat default-directory "cpio-bin"))
-(message "Loaded cpio-bin")
+(if (file-exists-p (concat default-directory "cpio-bin.elc"))
+    (load (concat default-directory "cpio-bin.elc"))
+  (load (concat default-directory "cpio-bin.el")))
+(message "Loaded cpion")
 ;; (require 'cpio-crc)
-(load (concat default-directory "cpio-crc"))
-(message "Loaded cpio-crc.el.")
+(if (file-exists-p (concat default-directory "cpio-crc.elc"))
+    (load (concat default-directory "cpio-crc.elc"))
+  (load (concat default-directory "cpio-crc.el")))
+(message "Loaded cpio-crc.")
 ;; (require 'cpio-hpbin)
-(load (concat default-directory "cpio-hpbin"))
-(message "Loaded cpio-hpbin.el")
+(if (file-exists-p (concat default-directory "cpio-hpbin.elc"))
+    (load (concat default-directory "cpio-hpbin.elc"))
+  (load (concat default-directory "cpio-hpbin.el")))
+(message "Loaded cpio-hpbil")
 ;; (require 'cpio-hpodc)
-(load (concat default-directory "cpio-hpodc"))
-(message "Loaded cpio-hpodc.el")
+(if (file-exists-p (concat default-directory "cpio-hpodc.elc"))
+    (load (concat default-directory "cpio-hpodc.elc"))
+  (load (concat default-directory "cpio-hpodc.el")))
+(message "Loaded cpio-hpodl")
 ;; (require 'cpio-newc)
-(load (concat default-directory "cpio-newc"))
-(message "Loaded cpio-newc.el.")
+(if (file-exists-p (concat default-directory "cpio-newc.elc"))
+    (load (concat default-directory "cpio-newc.elc"))
+  (load (concat default-directory "cpio-newc.el")))
+(message "Loaded cpio-newc.")
 ;; (require 'cpio-odc)
-(load (concat default-directory "cpio-odc"))
-(message "Loaded cpio-odc.el")
+(if (file-exists-p (concat default-directory "cpio-odc.elc"))
+    (load (concat default-directory "cpio-odc.elc"))
+  (load (concat default-directory "cpio-odc.el")))
+(message "Loaded cpio-odl")
 ;; (require 'cpio-tar)
 ;; (require 'cpio-ustar)
 
 ;; (require 'cpio-wanted)
-(load (concat default-directory "cpio-wanted"))
-(message "Loaded cpio-wanted.el.")
+(if (file-exists-p (concat default-directory "cpio-wanted.elc"))
+    (load (concat default-directory "cpio-wanted.elc"))
+  (load (concat default-directory "cpio-wanted.el")))
+(message "Loaded cpio-wanted.")
 ;; (require 'cpio-dired)
-(load (concat default-directory "cpio-dired"))
-(message "Loaded cpio-dired.el.")
-(load (concat default-directory "cpio-entry-contents-mode"))
+(if (file-exists-p (concat default-directory "cpio-dired.elc"))
+    (load (concat default-directory "cpio-dired.elc"))
+  (load (concat default-directory "cpio-dired.el")))
+(message "Loaded cpio-dired.")
+;; (require 'cpio-entry-contents-mode)
+(if (file-exists-p (concat default-directory "cpio-entry-contents-mode.elc"))
+    (load (concat default-directory "cpio-entry-contents-mode.elc"))
+  (load (concat default-directory "cpio-entry-contents-mode.el")))
 (message "Loaded cpio-entry-contents-mode.")
 
 
@@ -383,6 +467,18 @@ See `cpio-discern-archive-type' for the full list.")
   "")
 (setq cpio-make-header-string-func ())
 
+(defvar cpio-adjust-trailer-func ()
+  "")
+
+(defvar cpio-insert-trailer-func ()
+  "")
+
+(defvar cpio-delete-trailer-func ()
+  "")
+
+(defvar cpio-make-chksum-for-file-func ()
+  "")
+
 (defvar *cpio-local-funcs* ()
   "A list of variables peculiar to the different headers and their fields.
 The design here is that package-wide variables have the prefix `cpio-'
@@ -391,6 +487,7 @@ All of this can then be calculated via (symbol-name), etc.")
 (setq *cpio-local-funcs* (list
                          ;; Catalog management
                          'cpio-build-catalog-func
+                         'cpio-make-chksum-for-file-func
                          ;; Header parsing functions
                          'cpio-end-of-archive-func
                          'cpio-start-of-trailer-func
@@ -435,7 +532,7 @@ A parsed header is a vector of the following form:
      rdev-min
      name-size
 
-     checksum
+     chksum
      name].")
 (make-variable-buffer-local '*cpio-catalog*)
 (setq *cpio-catalog* ())
@@ -517,8 +614,8 @@ A parsed header is a vector of the following form:
   (setq *cpio-namesize-parsed-idx* i)
 
   (setq i (1+ i))
-  (defvar *cpio-checksum-parsed-idx* i)
-  (setq *cpio-checksum-parsed-idx* i)
+  (defvar *cpio-chksum-parsed-idx* i)
+  (setq *cpio-chksum-parsed-idx* i)
 
   (setq i (1+ i))
   (defvar *cpio-name-parsed-idx* i)
@@ -544,7 +641,8 @@ A parsed header is a vector of the following form:
 ;; Customizations
 ;; 
 (defgroup cpio ()
-  "Customizations for cpio-mode.")
+  "Customizations for cpio-mode."
+  :group 'data)
 
 (defcustom cpio-default-format "newc"
   "The default cpio format to use for a new or empty archive."
@@ -555,6 +653,17 @@ A parsed header is a vector of the following form:
 ;; 
 ;; Library
 ;; 
+
+(defun cpio-mode-find-file-hook ()
+  "find-file hook to detect if a file is likely a cpio archive.
+If it is, then put it under cpio-mode."
+  (let ((fname "cpio-mode-find-file-hook")
+       )
+    ;; (error "%s() is not yet implemented" fname)
+    (if (cpio-discern-archive-type)
+       (cpio-mode))
+    ))
+
 (defun cpio-discern-archive-type ()
   "Return a symbol reflecting the type of the cpio archive in the current 
buffer.
 Values are 'bin, 'newc, 'odc, 'crc, 'tar, 'ustar, 'hpbin, 'hpodc
@@ -562,24 +671,24 @@ and NIL if the current buffer does not begin with a cpio 
entry header."
   ;; Using a RE may not be the right way to go.
   ;; Maybe each format needs a function.
   (let ((fname "cpio-discern-archive-type")
-       (this-archive-type))
+       (this-archive-type ()))
     (unless *cpio-archive-syntax-table*
       (setq *cpio-archive-syntax-table* (make-syntax-table))
       (let ((i 0))
        (while (< i #x100)
          (modify-syntax-entry i "w" *cpio-archive-syntax-table*)
          (setq i (1+ i)))))
-    (set-syntax-table *cpio-archive-syntax-table*)
-    (save-excursion
-      (widen)
-      (goto-char (point-min))
-      (catch 'found-it
-       (mapcar (lambda (archive-spec)
-                 (cond ((looking-at-p (car archive-spec))
-                        (setq this-archive-type (cdr archive-spec))
-                        (throw 'found-it t))
+    (with-syntax-table *cpio-archive-syntax-table*
+      (save-excursion
+       (widen)
+       (goto-char (point-min))
+       (catch 'found-it
+         (mapc (lambda (archive-spec)
+                 (cond ((looking-at-p (car archive-spec))
+                        (setq this-archive-type (cdr archive-spec))
+                        (throw 'found-it t))
                        (t t)))
-               *cpio-re-type-alist*)))
+               *cpio-re-type-alist*))))
     this-archive-type))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -591,7 +700,7 @@ and NIL if the current buffer does not begin with a cpio 
entry header."
   (let ((fname "cpio-parse-header"))
     (funcall cpio-parse-header-func header-str)))
 
-(defun cpio-header-at-point (&optional where)
+(defun OBS-cpio-header-at-point (&optional where)
   "Return the header string at or following point WHERE.
 If WHERE is not given, then use point.
 CAVEAT: This searches for the magic number at the begining of the header;
@@ -746,7 +855,7 @@ WHERE can be an integer or marker."
                  (contents-end (+ contents-start contents-size -1))
                  (result))
             (if (null entry-attrs)
-                (error "%s(): Could not get entry attributes for [[%s]]." 
fname))
+                (error "%s(): Could not get entry attributes for [[%s]]." 
fname entry-name))
             (goto-char contents-start)
             (forward-char contents-size)
             (setq result (buffer-substring-no-properties contents-start 
(point))))))))
@@ -796,7 +905,7 @@ GID can be either a string (representing a number)
 or an integer."
   (let ((fname "cpio-set-gid"))
     (unless (integerp gid)
-      (setq uid (string-to-number gid)))
+      (setq gid (string-to-number gid)))
     (aset parsed-header *cpio-gid-parsed-idx* gid)))
 
 (defun cpio-set-mode (parsed-header mode)
@@ -804,7 +913,7 @@ or an integer."
 MODE is either an integer or a string representing an integer."
   (let ((fname "cpio-set-mode"))
     (unless (integerp mode)
-      (setq uid (string-to-number mode)))
+      (setq mode (string-to-number mode)))
     (aset parsed-header *cpio-mode-parsed-idx* mode)))
 
 (defun cpio-set-mtime (parsed-header mtime)
@@ -889,7 +998,7 @@ or a buffer affiliated with such a buffer."
            (warn "%s(): FIFOs (pipes) cannot be extracted with cpio-mode." 
fname))
           ((string-equal entry-type *cpio-modes-sock*)
            (warn "%s(): Sockets cannot be extracted with cpio-mode." fname))
-          ((string-equal entry-type *cpio-modes-unkown*)
+          ((string-equal entry-type *cpio-modes-unknown*)
            (warn "%s(): Unknown entry type -- not extracting." fname))
           (t (error "%s(): Impossible condition." fname)))))
 
@@ -954,7 +1063,7 @@ If ENTRY-NAME is not in the current archive, then return 
NIL."
          ((= #o140000 (logand s-ifsock numeric-mode))
           s-ifsock)
          ((= #o120000 (logand s-iflnk  numeric-mode))
-          s-iflink)
+          s-iflnk)
          ((/= 0       (logand s-ifreg  numeric-mode))
           s-ifreg)
          ((/= 0       (logand s-ifdir  numeric-mode))
@@ -966,7 +1075,7 @@ If ENTRY-NAME is not in the current archive, then return 
NIL."
          ((/= 0       (logand s-ififo  numeric-mode))
           s-ififo)
          (t
-          s_iunk))))
+          s-ifunk))))
 
 (defun cpio-set-file-attrs (file-name)
   "Set the attributes on FILE-NAME
@@ -1041,9 +1150,9 @@ ENTRY is a catalog entry."
             (size (cpio-entry-size attrs))
             (entry-start (cpio-entry-header-start entry))
             (contents-start (cpio-contents-start (cpio-entry-name attrs)))
-            (entry-end (1+ (round-up (+ (1- contents-start)
-                                        (cpio-entry-size attrs))
-                                     *cpio-padding-modulus*))))
+            (entry-end (1+ (cg-round-up (+ (1- contents-start)
+                                           (cpio-entry-size attrs))
+                                        *cpio-padding-modulus*))))
        (setq buffer-read-only nil)
        (delete-region entry-start entry-end)
        (setq buffer-read-only t)))))
@@ -1146,7 +1255,7 @@ a UNIX/GNU/Linux time as an integer."
   (let ((fname "cpio-find-entry")
        (target-buffer))
     (if (null (setq target-buffer (get-buffer-create 
(cpio-contents-buffer-name entry-name))))
-       (error "%s(): Could not get a buffer for entry [[%s]]." fname))
+       (error "%s(): Could not get a buffer for entry [[%s]]." fname 
entry-name))
     (cab-register target-buffer *cab-parent*)
     (with-current-buffer target-buffer
       (cond ((or (/= 0 (1- (point)))
@@ -1156,7 +1265,7 @@ a UNIX/GNU/Linux time as an integer."
             ;; (setq buffer-read-only t)
             (goto-char (point-min)))
            (t t))
-      (make-variable-buffer-local 'cpio-entry-name)
+      (make-local-variable 'cpio-entry-name)
       (setq cpio-entry-name entry-name)
       (set-buffer-modified-p nil)
       (cpio-entry-contents-mode))
@@ -1182,7 +1291,7 @@ a UNIX/GNU/Linux time as an integer."
         (rdev-min 0)
         (namesize (length filename))
 
-        (checksum (cpio-make-checksum filename))
+        (chksum (cpio-make-chksum-for-file filename))
 
         (result (make-vector 14 nil)))
     (aset result *cpio-ino-parsed-idx*        ino)
@@ -1200,11 +1309,17 @@ a UNIX/GNU/Linux time as an integer."
     (aset result *cpio-rdev-min-parsed-idx*   rdev-min)
     (aset result *cpio-namesize-parsed-idx*   namesize)
     
-    (aset result *cpio-checksum-parsed-idx*   checksum)
+    (aset result *cpio-chksum-parsed-idx*     chksum)
     (aset result *cpio-name-parsed-idx*       filename)
 
     result))
 
+(defun cpio-make-chksum-for-file (filename)
+  "Return the checksum for FILENAME."
+  (let ((fname "cpio-make-chksum-for-file"))
+    ;; (error "%s() is not yet implemented" fname)
+    (funcall cpio-make-chksum-for-file-func filename)))
+
 (defun cpio-create-faux-directory-attrs (name)
   "Create attributes appropriate for adding a directory entry to a 
cpio-archive.
 CAVEAT: While many attributes are derived from a best guess of reality,
@@ -1230,25 +1345,25 @@ many are simply invented."
         (rdev-maj 0)
         (rdev-min 0)
         (namesize (1+ (length name)))
-        (checksum 0)                   ;Checksum for a direcory is always 0.
+        (chksum 0)                     ;Checksum for a direcory is always 0.
         (result (make-vector 14 nil)))
-    (aset result *cpio-ino-parsed-idx* ino)
-    (aset result *cpio-mode-parsed-idx* mode)
-    (aset result *cpio-uid-parsed-idx* uid)
-    (aset result *cpio-gid-parsed-idx* gid)
+    (aset result *cpio-ino-parsed-idx*        ino)
+    (aset result *cpio-mode-parsed-idx*       mode)
+    (aset result *cpio-uid-parsed-idx*        uid)
+    (aset result *cpio-gid-parsed-idx*        gid)
     
-    (aset result *cpio-nlink-parsed-idx* nlink)
-    (aset result *cpio-mtime-parsed-idx* mtime)
+    (aset result *cpio-nlink-parsed-idx*      nlink)
+    (aset result *cpio-mtime-parsed-idx*      mtime)
     (aset result *cpio-entry-size-parsed-idx* entry-size)
-    (aset result *cpio-dev-maj-parsed-idx* dev-maj)
+    (aset result *cpio-dev-maj-parsed-idx*    dev-maj)
     
-    (aset result *cpio-dev-min-parsed-idx* dev-min)
-    (aset result *cpio-rdev-maj-parsed-idx* rdev-maj)
-    (aset result *cpio-rdev-min-parsed-idx* rdev-min)
-    (aset result *cpio-namesize-parsed-idx* namesize)
+    (aset result *cpio-dev-min-parsed-idx*    dev-min)
+    (aset result *cpio-rdev-maj-parsed-idx*   rdev-maj)
+    (aset result *cpio-rdev-min-parsed-idx*   rdev-min)
+    (aset result *cpio-namesize-parsed-idx*   namesize)
     
-    (aset result *cpio-checksum-parsed-idx* checksum)
-    (aset result *cpio-name-parsed-idx* name)
+    (aset result *cpio-chksum-parsed-idx*     chksum)
+    (aset result *cpio-name-parsed-idx*       name)
     
     result))
 
@@ -1351,16 +1466,21 @@ Signal an error if it isn't."
   "Treat cpio archives like file systems with a dired UI."
   (if (null (setq *cpio-format* (cpio-discern-archive-type)))
       (error "You're not in a supported CPIO buffer. It begins [[%s]]." 
(buffer-substring-no-properties 1 8)))
-  (message "You're in a cpio buffer of type [[%s]]." (symbol-name 
*cpio-format*)) ; (sit-for 1.0)
+  ;; (message "You're in a cpio buffer of type [[%s]]." (symbol-name 
*cpio-format*))
+  ;; (sit-for 1.0)
   (let ((archive-buffer (current-buffer))
        (cpio-dired-buffer))
+    ;; You really only need this for the binary archive formats,
+    ;; but, hey it's cheap to set it.
+    (set-syntax-table *cpio-archive-syntax-table*)
     (setq buffer-read-only t)
-    (message "Establishing local variables.")
+    ;; (message "Establishing local variables.")
     (cpio-set-locals *cpio-format*)
     (setq *cpio-archive-name* (buffer-file-name))
     (cpio-build-catalog)
     (with-current-buffer (setq cpio-dired-buffer
                               (cpio-present-ala-dired (current-buffer)))
+      (make-local-variable '*cpio-archive-name*)
       (cpio-dired-set-unmodified))
     (cpio-create-keymap)
     (bury-buffer)
@@ -1424,7 +1544,7 @@ and, thus, the archive can be saved."
   (interactive)
   (let ((fname "cpio-quit"))
     (if *cab-parent*
-       (with-current-buffer *cab-pattern*
+       (with-current-buffer *cab-parent*
          (cpio-quit)
          (unless (kill-buffer)
            (warn "%s(): Could not kill [[%s]]." fname (current-buffer)))))))
@@ -1455,7 +1575,7 @@ ARCHIVE-TYPE is a symbol."
   (let ((fname "cpio-set-locals"))
     (if *cab-parent*
        (with-current-buffer *cab-parent*
-         (cpio-set-local-vars))
+         (cpio-set-local-vars archive-type))
       (cpio-set-local-vars archive-type)
       (cpio-set-local-funcs archive-type))))
 
@@ -1504,7 +1624,6 @@ See *cpio-local-funcs* for more information."
     ;; Some variables are not format-specific.
     (make-local-variable '*cpio-catalog*)
     (setq *cpio-catalog* ())
-    (make-variable-buffer-local '*cpio-archive-name*)
     (setq *cpio-archive-name* (buffer-file-name))
     ;; Now for the format-specific variables.
     (cond ((eq archive-type 'bin)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]