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

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

[elpa] externals/cpio-mode ce1183f 1/3: Update to version 0.17.


From: Stefan Monnier
Subject: [elpa] externals/cpio-mode ce1183f 1/3: Update to version 0.17.
Date: Sun, 15 Nov 2020 09:58:31 -0500 (EST)

branch: externals/cpio-mode
commit ce1183f52fa0cfc50145553804615e23d7d73046
Author: dlewan <d.lewan2000@gmail.com>
Commit: GitHub <noreply@github.com>

    Update to version 0.17.
---
 cpio-affiliated-buffers.el            |  38 ++---
 cpio-bin.el                           |  52 +++----
 cpio-crc.el                           |  54 +++----
 cpio-dired.el                         | 131 ++++++++--------
 cpio-entry-contents-mode.el           |   2 +-
 cpio-hpodc.el => cpio-entry-header.el |  31 ++--
 cpio-generic.el                       |  89 ++++++-----
 cpio-hpbin.el                         |  26 ++--
 cpio-hpodc.el                         |  26 ++--
 cpio-mode.el                          | 284 +++++++++++++++++-----------------
 cpio-modes.el                         |  37 ++---
 cpio-newc.el                          | 144 ++++++++---------
 cpio-odc.el                           | 170 ++++++++++----------
 cpio-ustar.el                         |  12 +-
 14 files changed, 554 insertions(+), 542 deletions(-)

diff --git a/cpio-affiliated-buffers.el b/cpio-affiliated-buffers.el
index de3d624..42fe890 100644
--- a/cpio-affiliated-buffers.el
+++ b/cpio-affiliated-buffers.el
@@ -4,38 +4,38 @@
 
 ;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
-;; 
+;;
 ;; This program is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
-;; 
+;;
 ;; This program is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
-;; 
+;;
 ;; You should have received a copy of the GNU General Public License
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;; Author: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Maintainer: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Created: 2017 Nov 22
-;; Version: 0.16β
+;; Version: 0.17
 ;; Keywords: files
 
 ;;; Commentary:
 
 ;; To keep track of which buffers are connected to a specific archive,
 ;; cpio-mode uses the idea of affiliated buffers.
-;; 
+;;
 ;; 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 [deregistering] the dired-like buffer also kills the archive's 
buffer,
 ;; and killing the archive's buffer kills
 ;; all remaining affiliated buffers.
-;; 
+;;
 
 ;;; Documentation:
 
@@ -44,7 +44,7 @@
 ;;   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.
@@ -58,7 +58,7 @@
 ;; (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 
+;;     A hook for subordinate buffers that removes their registry entry
 ;;     with PARENT.
 ;; (cab-deregister (&optional buffer))
 ;;     Kill BUFFER and its subordinates.
@@ -134,8 +134,8 @@ that are affiliated with each other."
                     (with-current-buffer buf
                       *cab-subordinates*)))
              (t (insert "    No subordinates.\n")))))))
-  
-(defun OBS-cab-test-register-buffer-hook ( buffer parent )
+
+(defun OBS-cab-test-register-buffer-hook (buffer parent)
   "Record some information about the registration of a BUFFER
 as an affiliated buffer.
 It's not strictly a hook, but it pairs with the above kill-buffer-hook."
@@ -159,21 +159,21 @@ It's not strictly a hook, but it pairs with the above 
kill-buffer-hook."
 
 ;;
 ;; Generic functions
-;; 
+;;
 
 
 
 
 ;;
 ;; Dependencies
-;; 
+;;
 (eval-when-compile
   (require 'cl-lib))
 
 
-;; 
+;;
 ;; Vars
-;; 
+;;
 (defvar *cab-subordinates* ()
   "A list of subordinate buffers affiliated with the current buffer.")
 (setq *cab-subordinates* ())
@@ -187,9 +187,9 @@ It's not strictly a hook, but it pairs with the above 
kill-buffer-hook."
 
 (make-variable-buffer-local '*cab-parent*)
 
-;; 
+;;
 ;; Library
-;; 
+;;
 (defun cab-register (buffer parent)
   "Register the given BUFFER as an affiliate of the PARENT buffer.
 If BUFFER is already an affiliate of PARENT, then succeed quietly.
@@ -220,7 +220,7 @@ Return NIL if buffer is already affiliated to another 
parent."
             (push buffer *cab-subordinates*)
             (add-hook 'kill-buffer-hook 'cab-kill-buffer-hook nil 'local)
             (local-set-key "\C-x\C-k" (lambda () (cab-deregister parent))))))))
-  
+
 (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"))
@@ -273,7 +273,7 @@ if you want to lose registry information."
        (parent)
        (subordinates))
     (cond ((buffer-live-p buffer)
-          (with-current-buffer buffer 
+          (with-current-buffer buffer
             (setq parent *cab-parent*)
             (setq subordinates *cab-subordinates*))
           (mapc 'cab-deregister subordinates)
@@ -292,7 +292,7 @@ if you want to lose registry information."
   (let ((fname "cab-simple-deregister")
        (parent)
        (subordinates))
-    (with-current-buffer buffer 
+    (with-current-buffer buffer
       (setq parent *cab-parent*)
       (setq subordinates *cab-subordinates*))
     (mapc 'cab-simple-deregister subordinates)
diff --git a/cpio-bin.el b/cpio-bin.el
index 83b0d27..d0a66be 100644
--- a/cpio-bin.el
+++ b/cpio-bin.el
@@ -1,28 +1,28 @@
 ;;; cpio-bin.el --- handle bin cpio entry header formats -*- coding: utf-8 -*-
 
 ;; COPYRIGHT
-;; 
+;;
 ;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
-;; 
+;;
 ;; This program is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
-;; 
+;;
 ;; This program is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
-;; 
+;;
 ;; You should have received a copy of the GNU General Public License
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
-;; 
+;;
 
 ;; Author: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Maintainer: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Created: 2015 Jan 03
-;; Version: 0.16β
+;; Version: 0.17
 ;; Keywords: files
 
 ;;; Commentary:
@@ -33,7 +33,7 @@
 
 ;;
 ;; Dependencies
-;; 
+;;
 (require 'bindat)
 
 ;;;;;;;;;;;;;;;;
@@ -56,9 +56,9 @@
 ;;;;;;;;;;;;;;;;
 
 
-;; 
+;;
 ;; Vars
-;; 
+;;
 
 (defconst *cpio-bin-header-length* (length (string-as-unibyte 
"\307q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"))
   "The length of a bin header.")
@@ -135,7 +135,7 @@
 (defconst cpio-bin-index-spec
   '(;; (:magic u16)
     (:dev      u16)
-    (:ino      u16)    
+    (:ino      u16)
     (:mode     u16)
     (:uid      u16)
     (:gid      u16)
@@ -145,10 +145,10 @@
     (:namesize u16)
     (:filesize u32)
     (:filename strz (:namesize))))
-(setq cpio-bin-index-spec 
+(setq cpio-bin-index-spec
   '((:magic    u16r)
     (:dev      u16r)
-    (:ino      u16r)   
+    (:ino      u16r)
     (:mode     u16r)
     (:uid      u16r)
     (:gid      u16r)
@@ -192,9 +192,9 @@ in a bin cpio archive.")
   :group 'cpio)
 
 
-;; 
+;;
 ;; Library
-;; 
+;;
 
 (defun cpio-bin-header-at-point (&optional where)
   "Return the header string at or following point WHERE.
@@ -215,7 +215,7 @@ CAVEATS:
             (forward-char (length *cpio-bin-magic-re*))
             (while (and (re-search-backward *cpio-bin-magic-re* (point-min) t)
                         (not (setq found (looking-at *cpio-bin-header-re*)))))
-            (if found 
+            (if found
                 (string-as-unibyte (match-string-no-properties 0))))))))
 
 (defun cpio-bin-parse-header (header-string)
@@ -243,17 +243,17 @@ The function does NOT get the contents of that entry."
                         (bindat-get-field header-info :mode)
                         (bindat-get-field header-info :uid)
                         (bindat-get-field header-info :gid)
-                        
+
                         (bindat-get-field header-info :nlink)
                         mtime
                         filesize
                         (bindat-get-field header-info :dev)
-                        
+
                         0                              ;dev min
                         (bindat-get-field header-info :rdev)
                         0                              ;rdev min
                         (bindat-get-field header-info :namesize)
-                        
+
                         0                              ;checksum
                    entry-name))
           (if (cpio-entry-name result)
@@ -267,15 +267,15 @@ The function does NOT get the contents of that entry."
        ;; The namesize in the header includes the terminating NULL at the end 
of the name.
        (local-namesize (1- namesize))
        (total -1))
-    (if (= 0 (mod (setq total (+ 1 *cpio-bin-name-field-offset* 
local-namesize)) 
+    (if (= 0 (mod (setq total (+ 1 *cpio-bin-name-field-offset* 
local-namesize))
                  *cpio-bin-padding-modulus*))
        (setq total (1+ total)))
     (cg-round-up total *cpio-bin-padding-modulus*)))
 
 ;;;;;;;;;;;;;;;;
-;; 
+;;
 ;; Header construction
-;; 
+;;
 
 (defun cpio-bin-make-header-string (attrs &optional contents)
   "Make a BIN style padded cpio header for the given ATTRibuteS.
@@ -286,7 +286,7 @@ This function does NOT include the contents."
        (padding)
        (mtime (cpio-bin-make-mtime attrs))
        (filesize (cpio-bin-make-filesize attrs)))
-    (setq header-string 
+    (setq header-string
          (bindat-pack cpio-bin-index-spec
                       (list
                        (cons :magic     (cpio-bin-make-magic    attrs))
@@ -380,9 +380,9 @@ This function does NOT include the contents."
 ;; Filename is not one of ATTRS. ∴ It doesn't get a constructor here.
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; 
+;;
 ;; Functions for whole entries
-;; 
+;;
 (defun cpio-bin-parse-header-at-point ()
   "Parse the bin cpio header that begins at point.
 If there is no header there, then signal an error."
@@ -519,9 +519,9 @@ once the TRAILER is written and padded."
   (let ((fname "cpio-newc-make-chcksum-for-file"))
     0))
 
-;; 
+;;
 ;; Commands
-;; 
+;;
 
 
 (provide 'cpio-bin)
diff --git a/cpio-crc.el b/cpio-crc.el
index d4f5e6a..ac59681 100644
--- a/cpio-crc.el
+++ b/cpio-crc.el
@@ -1,28 +1,28 @@
 ;;; cpio-crc.el --- handle crc cpio entry header formats -*- coding: utf-8 -*-
 
 ;; COPYRIGHT
-;; 
+;;
 ;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
-;; 
+;;
 ;; This program is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
-;; 
+;;
 ;; This program is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
-;; 
+;;
 ;; You should have received a copy of the GNU General Public License
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
-;; 
+;;
 
 ;; Author: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Maintainer: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Created: 2015 Jan 03
-;; Version: 0.16β
+;; Version: 0.17
 ;; Keywords: files
 
 ;;; Commentary:
@@ -33,20 +33,20 @@
 
 ;;
 ;; Dependencies
-;; 
+;;
 
 ;; (eval-when-compile
 ;;   (condition-case err
 ;;       (require 'cpio-generic)
-;;     (error 
+;;     (error
 ;;      (if (file-exists-p (concat default-directory "cpio-generic.elc"))
-;;      (load (concat default-directory "cpio-generic.elc"))
+;;      (load (concat default-directory "cpio-generic.elc"))
 ;;        (load (concat default-directory "cpio-generic.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.elc"))
 ;;        (load (concat default-directory "cpio-newc.el"))))))
 
 (require 'cpio-newc)
@@ -79,9 +79,9 @@
 ;;;;;;;;;;;;;;;;
 
 
-;; 
+;;
 ;; Vars
-;; 
+;;
 
 (defconst *cpio-crc-header-length* (length 
"07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000B00000000")
   "The length of a crc header.")
@@ -114,13 +114,13 @@
                                   "\\(" *cpio-crc-mode-re*     "\\)"
                                   "\\(" *cpio-crc-uid-re*      "\\)"
                                   "\\(" *cpio-crc-gid-re*      "\\)"
-                                  
+
                                   "\\(" *cpio-crc-nlink-re*    "\\)"
                                   "\\(" *cpio-crc-mtime-re*    "\\)"
                                   "\\(" *cpio-crc-filesize-re* "\\)"
                                   "\\(" *cpio-crc-dev-maj-re*  "\\)"
                                   "\\(" *cpio-crc-dev-min-re*  "\\)"
-                                  
+
                                   "\\(" *cpio-crc-rdev-maj-re* "\\)"
                                   "\\(" *cpio-crc-rdev-min-re* "\\)"
                                   "\\(" *cpio-crc-namesize-re* "\\)"
@@ -144,9 +144,9 @@
 (defconst *cpio-crc-chksum-re-idx*   *cpio-newc-chksum-re-idx*)
 (defconst *cpio-crc-filename-re-idx* *cpio-newc-filename-re-idx*)
 
-;; 
+;;
 ;; EO newc header variables.
-;; 
+;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (defconst *cpio-crc-field-width*     *cpio-newc-field-width*)
@@ -181,14 +181,14 @@ Taken from cpio-2.12/src/global.c."
   :group 'cpio)
 
 
-;; 
+;;
 ;; Library
-;; 
+;;
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; 
+;;
 ;; Functions for working with a cpio newc header
-;; 
+;;
 
 (defun cpio-newc-header-at-point (&optional where)
   "Return the header string at or following point WHERE.
@@ -209,14 +209,14 @@ CAVEATS:
             (forward-char (length *cpio-newc-magic-re*))
             (while (and (re-search-backward *cpio-newc-magic-re* (point-min) t)
                         (not (setq found (looking-at *cpio-newc-header-re*)))))
-            (if found 
+            (if found
                 (match-string-no-properties 0)))))))
 ;; OBSOLETE (setq cpio-header-at-point-func 'cpio-newc-header-at-point)
 
 ;;;;;;;;;;;;;;;;
-;; 
+;;
 ;; Parsing a header
-;; 
+;;
 
 (defalias 'cpio-crc-header-size    'cpio-newc-header-size)
 (defalias 'cpio-crc-parse-magic    'cpio-newc-parse-magic)
@@ -340,9 +340,9 @@ This function does NOT include the contents."
 ;; Filename is not one of ATTRS. ∴ It doesn't get a constructor here.
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; 
+;;
 ;; Functions for whole entries
-;; 
+;;
 (defun cpio-crc-parse-header-at-point ()
   "Parse the crc cpio header that begins at point.
 If there is no header there, then signal an error."
@@ -453,10 +453,10 @@ CAVEAT: This respects neither narrowing nor the point."
       (cpio-crc-make-chksum (buffer-substring-no-properties (point-min) 
(point-max))))))
 
 
-;; 
+;;
 ;; Commands
 ;;
- 
+
 
 (provide 'cpio-crc)
 ;;; cpio-crc.el ends here.
diff --git a/cpio-dired.el b/cpio-dired.el
index 134cc5a..5e800b1 100644
--- a/cpio-dired.el
+++ b/cpio-dired.el
@@ -4,24 +4,24 @@
 
 ;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
-;; 
+;;
 ;; This program is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
-;; 
+;;
 ;; This program is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
-;; 
+;;
 ;; You should have received a copy of the GNU General Public License
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;; Author: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Maintainer: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Created: 2017 Dec 01
-;; Version: 0.16β
+;; Version: 0.17
 ;; Keywords: files
 
 ;;; Commentary:
@@ -46,7 +46,7 @@
 
 (defun snarf-defuns ()
   "Return a list of the defuns in the visible porition of the buffer.
-Keep any preceding comments." 
+Keep any preceding comments."
   (let ((fname "snarf-defuns")
        (results ())
        (start)
@@ -95,7 +95,7 @@ Keep any preceding comments."
 
 ;;
 ;; Dependencies
-;; 
+;;
 
 (eval-when-compile
   (require 'dired))
@@ -105,9 +105,9 @@ Keep any preceding comments."
   (require 'dired-aux))
 (require 'dired-aux)
 
-;; 
+;;
 ;; Vars
-;; 
+;;
 
 ;;;;;;;;;;;;;;;;
 ;; Make the byte compiler happy.
@@ -180,15 +180,15 @@ Keep any preceding comments."
 
 ;; (defvar dired-sort-by-date-regexp
 ;;   (concat "\\(\\`\\| \\)-[^- ]*t"
-;;       ;; `dired-ls-sorting-switches' after -t overrides -t.
-;;       "[^ " dired-ls-sorting-switches "]*"
-;;       "\\(\\(\\`\\| +\\)\\(--[^ ]+\\|-[^- t"
-;;       dired-ls-sorting-switches "]+\\)\\)* *$")
+;;       ;; `dired-ls-sorting-switches' after -t overrides -t.
+;;       "[^ " dired-ls-sorting-switches "]*"
+;;       "\\(\\(\\`\\| +\\)\\(--[^ ]+\\|-[^- t"
+;;       dired-ls-sorting-switches "]+\\)\\)* *$")
 ;;   "Regexp recognized by Dired to set `by date' mode.")
 
 ;; (defvar dired-sort-by-name-regexp
 ;;   (concat "\\`\\(\\(\\`\\| +\\)\\(--[^ ]+\\|"
-;;       "-[^- t" dired-ls-sorting-switches "]+\\)\\)* *$")
+;;       "-[^- t" dired-ls-sorting-switches "]+\\)\\)* *$")
 ;;   "Regexp recognized by Dired to set `by name' mode.")
 
 ;; (defvar dired-sort-inhibit nil
@@ -229,7 +229,7 @@ Keep any preceding comments."
                                                "\\("
                                                "[[:alnum:]]+" ;group
                                                "\\)"
-                                               
+
                                                "\\s-+"
                                                "[[:digit:]]+" ;filesize
                                                "\\s-+"
@@ -254,7 +254,7 @@ Keep any preceding comments."
                                              "\\("
                                              "[[:alnum:]]+" ;group
                                              "\\)"
-                                             
+
                                              "\\s-+"
                                              "[[:digit:]]+" ;filesize
                                              "\\s-+"
@@ -336,7 +336,6 @@ This is what the do-commands look for, and what the 
mark-commands store.")
   "In cpio-dired, a string corresponding to cpio-dired-del-marker.")
 (setq cpio-dired-del-str (char-to-string cpio-dired-del-marker))
 
-  
 ;; HEREHERE dired-keep-marker-copy is customizable.
 ;; Should it be here too?
 (defvar cpio-dired-keep-marker-copy ?C
@@ -423,16 +422,16 @@ Important: the match ends just after the marker.")
    ;;
    ;; Marked entries.
    (list (concat "^[" (char-to-string cpio-dired-marker-char) "]")
-         '(".+" (cpio-dired-move-to-entry-name) nil (0 
cpio-dired-marked-face)))
+        '(".+" (cpio-dired-move-to-entry-name) nil (0 cpio-dired-marked-face)))
    ;;
    ;; Flagged entries.
    (list (concat "^[" (char-to-string cpio-dired-del-marker) "]")
-         '(".+" (cpio-dired-move-to-entry-name) nil (0 
cpio-dired-flagged-face)))
+        '(".+" (cpio-dired-move-to-entry-name) nil (0 
cpio-dired-flagged-face)))
    ;; People who are paranoid about security would consider this more
    ;; important than other things such as whether it is a directory.
    ;; But we don't want to encourage paranoia, so our default
    ;; should be what's most useful for non-paranoids. -- rms.
-   ;; 
+   ;;
    ;; However, we don't need to highlight the entry name, only the
    ;; permissions, to win generally.  -- fx.
    ;; Fixme: we could also put text properties on the permission
@@ -482,10 +481,10 @@ Important: the match ends just after the marker.")
    ;;
    ;; Directory headers.
    ;;;; (list cpio-dired-subdir-regexp '(1 cpio-dired-header-face))
-   
    )
   "Additional expressions to highlight in cpio-dired mode.")
-(setq cpio-dired-font-lock-keywords 
+
+(setq cpio-dired-font-lock-keywords
   ;; cpio-dired-font-lock-keywords is adapted from dired.
   (list
    ;;
@@ -499,16 +498,16 @@ Important: the match ends just after the marker.")
    ;;
    ;; Marked entries.
    (list (concat "^[" (char-to-string cpio-dired-marker-char) "]")
-         '(".+" (cpio-dired-move-to-entry-name) nil (0 
cpio-dired-marked-face)))
+        '(".+" (cpio-dired-move-to-entry-name) nil (0 cpio-dired-marked-face)))
    ;;
    ;; Flagged entries.
    (list (concat "^[" (char-to-string cpio-dired-del-marker) "]")
-         '(".+" (cpio-dired-move-to-entry-name) nil (0 
cpio-dired-flagged-face)))
+        '(".+" (cpio-dired-move-to-entry-name) nil (0 
cpio-dired-flagged-face)))
    ;; People who are paranoid about security would consider this more
    ;; important than other things such as whether it is a directory.
    ;; But we don't want to encourage paranoia, so our default
    ;; should be what's most useful for non-paranoids. -- rms.
-   ;; 
+   ;;
    ;; However, we don't need to highlight the entry name, only the
    ;; permissions, to win generally.  -- fx.
    ;; Fixme: we could also put text properties on the permission
@@ -726,9 +725,9 @@ Important: the match ends just after the marker.")
   :type 'boolean)
 
 
-;; 
+;;
 ;; Library
-;; 
+;;
 
 (defun cpio-dired-get-entry-name ()
   "Get the entry name on the current line."
@@ -843,16 +842,16 @@ then use that to mark the new entry."
 
       (cpio-delete-trailer)
       (setq header-string (cpio-make-header-string attrs contents))
-      
+
       (with-writable-buffer
        (setq header-start-marker (point-max-marker))
        (goto-char (point-max))
        (insert header-string)
-      
+
        (setq contents-start-marker (point-max-marker))
        (goto-char (point-max))
        (cpio-insert-padded-contents contents))
-       
+
       (aset new-catalog-entry *cpio-catalog-entry-attrs-idx* attrs)
       (aset new-catalog-entry *cpio-catalog-entry-header-start-idx* 
header-start-marker)
       (aset new-catalog-entry *cpio-catalog-entry-contents-start-idx* 
contents-start-marker)
@@ -905,7 +904,7 @@ CONTRACT: TARGET is the actual TARGET name, not an implied 
directory entry."
 
 (defun cpio-dired-internal-do-rename (entry-name target)
   "Rename ENTRY-NAME to the TARGET entry.
-CONTRACT: 
+CONTRACT:
 1. TARGET is the actual TARGET name, not an implied directory entry.
 2. You're in a cpio-dired buffer"
   ;; HEREHERE This has some overlap with (cpio-dired-internal-do-copy).
@@ -1049,8 +1048,8 @@ The line does not include a trailing <new line>."
     (unless (characterp mark)
       (signal 'wrong-type-error (list 'characterp mark)))
     (if fmt
-       (format fmt mark 
-               mode-string nlink-string uid-string gid-string 
+       (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)
@@ -1062,13 +1061,13 @@ The line does not include a trailing <new line>."
       (setq entry-name (cpio-dired-get-entry-name)))
     (save-excursion
       (cpio-dired-goto-entry entry-name)
-      (string-to-char (buffer-substring (line-beginning-position) 
+      (string-to-char (buffer-substring (line-beginning-position)
                                        (1+ (line-beginning-position)))))))
 
 
 ;;
 ;; Commands
-;; 
+;;
 
 ;; h           describe-mode
 
@@ -1112,7 +1111,7 @@ then use the current buffer."
 
           (cpio-delete-trailer)
           (setq header-string (cpio-make-header-string entry-attrs))
-          
+
           (with-writable-buffer
            (setq header-start-marker (point-max-marker))
            (goto-char (point-max))
@@ -1124,7 +1123,7 @@ then use the current buffer."
 
            (goto-char (point-max))
            (cpio-insert-trailer))
-          
+
           (with-current-buffer cpio-dired-buffer
             (with-writable-buffer
              (delete-region (line-beginning-position) (1+ 
(line-end-position)))))))))
@@ -1378,7 +1377,7 @@ in the buffer containing the archive."
        (attrs)
        (mark))
     (unless (or (eq major-mode 'cpio-dired-mode)
-               (eq major-mode 'cpio-mode))
+               (eq major-mode 'cpio-mode))
       (error "%s(): major mode is [[%s]]." fname (symbol-name major-mode))
       (error "%s(): You're in neither a cpio-dired buffer nor a buffer in 
cpio-mode ." fname))
     (cond (*cab-parent*
@@ -1470,9 +1469,9 @@ into the minibuffer."
                         owner
                       ;; HERREHERE The following (read-string) doesn't play 
nicely
                       ;; with make check*.
-                      (read-string "Owner? "
-                                   nil
-                                   *cpio-dired-do-chown-history*)))
+                      (read-string "Owner? "
+                                   nil
+                                   *cpio-dired-do-chown-history*)))
        (local-group)
        (local-cpio-dired-buffer (if cpio-dired-buffer
                                     cpio-dired-buffer))
@@ -1519,7 +1518,7 @@ into the minibuffer."
                   (if local-group
                       (cpio-set-gid attrs local-group))
                   (cpio-set-contents-start entry (+ (cpio-entry-header-start 
entry)
-                                                    (length (cpio-padded 
(cpio-make-header-string attrs)
+                                                    (length (cpio-pad 
(cpio-make-header-string attrs)
                                                                          
*cpio-padding-modulus* ?\0))))
                   (goto-char (cpio-entry-contents-start entry))
 
@@ -1665,7 +1664,7 @@ See function `dired-do-rename-regexp' for more info."
   (let ((fname "cpio-dired-do-hardlink-regexp"))
     (error "%s() is not yet implemented" fname)))
 
-;; 
+;;
 ;; M-s a C-s   dired-do-isearch
 (defun cpio-dired-do-isearch ()                ;×
   "Search for a string through all marked entries using Isearch."
@@ -1673,7 +1672,7 @@ See function `dired-do-rename-regexp' for more info."
   (let ((fname "cpio-dired-do-isearch"))
     (error "%s() is not yet implemented" fname)))
 
-;; 
+;;
 ;; M-s a C-M-s dired-do-isearch-regexp
 (defun cpio-dired-do-isearch-regexp () ;×
   "Search for a regexp through all marked entries using Isearch."
@@ -2043,7 +2042,7 @@ Return the buffer containing those contents."
        (entry-buf))
     (cond ((null local-entry-name)
           (message "%s(): Could not get entry name." fname))
-         (t 
+         (t
           (with-current-buffer (setq entry-buf (cpio-find-entry 
local-entry-name))
             (cpio-entry-contents-mode))
           (pop-to-buffer entry-buf)))))
@@ -2169,7 +2168,7 @@ Use M-x dired-hide-all to (un)hide all directories."
   (let ((fname "cpio-dired-hide-subdir"))
     (warn "%s() is not obvious." fname)))
 
-;; 
+;;
 ;; M-s f C-s   dired-isearch-filenames
 (defun cpio-dired-isearch-entry-names () ;×
   "Search for a string using Isearch only in entry names in the Dired buffer."
@@ -2178,7 +2177,7 @@ Use M-x dired-hide-all to (un)hide all directories."
     (error "%s() is not yet implemented" fname)))
 
 ;; M-s a ESC   Prefix Command
-;; 
+;;
 ;; M-s f C-M-s dired-isearch-filenames-regexp
 (defun cpio-dired-isearch-entry-names-regexp () ;×
   "Search for a regexp using Isearch only in entry names in the cpio-dired 
buffer."
@@ -2253,8 +2252,8 @@ A prefix argument means to unmark them instead.
 `.' and `..' are never marked."
   (interactive
    (list (read-regexp (concat (if current-prefix-arg "Unmark" "Mark")
-                              " files containing (regexp): ")
-                      nil 'dired-regexp-history)
+                             " files containing (regexp): ")
+                     nil 'dired-regexp-history)
         (if current-prefix-arg ?\040)))
   (let ((fname "cpio-dired-mark-entries-containing-regexp"))
     (error "%s() is not yet implemented" fname)))
@@ -2301,7 +2300,7 @@ With prefix argument, unmark or unflag all those entries."
                (/= 0 (logand s-ixoth this-mode)))
            (cpio-dired-mark-this-entry)
          (cpio-dired-next-line 1))))))
-  
+
 ;; * m         dired-mark
 ;; Defined above.
 ;; * s         dired-mark-subdir-entries
@@ -2813,7 +2812,7 @@ easy-to-use form."
     (error "%s() is not yet implemented" fname)))
 
 ;; <remap>             Prefix Command
-;; 
+;;
 ;; C-t C-t             image-dired-dired-toggle-marked-thumbs
 (defun cpio-image-dired-dired-toggle-marked-thumbs (arg)       ;×
   "Toggle thumbnails in front of entry names in the dired buffer.
@@ -2991,9 +2990,9 @@ permissions are hidden from view."
     (error "%s() is not yet implemented" fname)))
 
 
-;; 
+;;
 ;; mode definition
-;; 
+;;
 (defvar *cpio-dired-have-made-keymap* nil)
 (setq *cpio-dired-have-made-keymap* nil)
 
@@ -3020,7 +3019,7 @@ permissions are hidden from view."
     (unless *cpio-dired-have-made-keymap*
       (define-key cpio-dired-mode-map "\C-c\C-c" 'cpio-dired-view-archive) ;✓
       ;; e .. f                dired-find-file
-      ;; 
+      ;;
       ;; RET           dired-find-file
       (define-key cpio-dired-mode-map "e" 'cpio-dired-find-entry) ;✓
       (define-key cpio-dired-mode-map "f" 'cpio-dired-find-entry) ;✓
@@ -3147,7 +3146,7 @@ permissions are hidden from view."
       (define-key cpio-dired-mode-map "*u" 'cpio-dired-unmark) ;✓
       ;; v             dired-view-file
       (define-key cpio-dired-mode-map "v" 'cpio-dired-view-entry)
-      ;; w             dired-copy-filename-as-kill 
+      ;; w             dired-copy-filename-as-kill
       (define-key cpio-dired-mode-map "w" 'cpio-dired-copy-entry-name-as-kill)
       ;; x             dired-do-flagged-delete
       (define-key cpio-dired-mode-map "x" 'cpio-dired-do-flagged-delete)
@@ -3165,10 +3164,10 @@ permissions are hidden from view."
       (define-key cpio-dired-mode-map "[mouse-2]" 
'cpio-dired-mouse-find-entry-other-window)
       ;; <remap>               Prefix Command
       (define-key cpio-dired-mode-map "[remap]" nil)
-      ;; 
+      ;;
       ;; C-t C-t               image-dired-dired-toggle-marked-thumbs
       (define-key cpio-dired-mode-map "\C-t\C-t" 
'cpio-image-dired-dired-toggle-marked-thumbs)
-      ;; 
+      ;;
       ;; C-t .         image-dired-display-thumb
       (define-key cpio-dired-mode-map "\C-t" 'cpio-image-dired-display-thumb)
       ;; C-t a         image-dired-display-thumbs-append
@@ -3191,7 +3190,7 @@ permissions are hidden from view."
       (define-key cpio-dired-mode-map "\C-t" 'cpio-image-dired-tag-entries)
       ;; C-t x         image-dired-dired-display-external
       (define-key cpio-dired-mode-map "\C-t" 
'cpio-image-dired-dired-display-external)
-      ;; 
+      ;;
       ;; C-M-d         dired-tree-down
       ;; (define-key cpio-dired-mode-map "\C-M-d" 'cpio-dired-tree-down) ;×
       ;; C-M-n         dired-next-subdir
@@ -3210,12 +3209,12 @@ permissions are hidden from view."
       (define-key cpio-dired-mode-map "\M-}" 'cpio-dired-next-marked-entry)
       ;; M-DEL         dired-unmark-all-files
       (define-key cpio-dired-mode-map "\M-\177" 'cpio-dired-unmark-all-entries)
-      ;; 
+      ;;
       ;; M-s a         Prefix Command
       (define-key cpio-dired-mode-map "\M-sa" nil)
       ;; M-s f         Prefix Command
       (define-key cpio-dired-mode-map "\M-sf" nil)
-      ;; 
+      ;;
       ;; % &           dired-flag-garbage-files
       (define-key cpio-dired-mode-map "%&" 'cpio-dired-flag-garbage-entries)
       ;; % C           dired-do-copy-regexp
@@ -3240,7 +3239,7 @@ permissions are hidden from view."
       (define-key cpio-dired-mode-map "%r" 'cpio-dired-do-rename-regexp)
       ;; % u           dired-upcase
       (define-key cpio-dired-mode-map "%u" 'cpio-dired-upcase)
-      ;; 
+      ;;
       ;; * C-n         dired-next-marked-file
       (define-key cpio-dired-mode-map "*\C-n" 'cpio-dired-next-marked-entry)
       ;; * C-p         dired-prev-marked-file
@@ -3267,7 +3266,7 @@ permissions are hidden from view."
       (define-key cpio-dired-mode-map "*t" 'cpio-dired-toggle-marks)
       ;; * DEL         dired-unmark-backward
       (define-key cpio-dired-mode-map "*\177" 'cpio-dired-unmark-backward)
-      ;; 
+      ;;
       ;; : d           epa-dired-do-decrypt
       (define-key cpio-dired-mode-map ":d" 'cpio-epa-dired-do-decrypt)
       ;; : e           epa-dired-do-encrypt
@@ -3276,7 +3275,7 @@ permissions are hidden from view."
       (define-key cpio-dired-mode-map ":s" 'cpio-epa-dired-do-sign)
       ;; : v           epa-dired-do-verify
       (define-key cpio-dired-mode-map ":v" 'cpio-epa-dired-do-verify)
-      ;; 
+      ;;
       ;; <remap> <advertised-undo>     dired-undo
       (define-key cpio-dired-mode-map "[remap advertised-undo]" 
'cpio-dired-undo)
       ;; <remap> <read-only-mode>      dired-toggle-read-only
@@ -3285,19 +3284,19 @@ permissions are hidden from view."
       (define-key cpio-dired-mode-map "[remap toggle-read-only]" 
'cpio-dired-toggle-read-only)
       ;; <remap> <undo>                        dired-undo
       (define-key cpio-dired-mode-map "[remap undo]" 'cpio-dired-undo)
-      ;; 
+      ;;
       ;; M-s f C-s     dired-isearch-filenames
       (define-key cpio-dired-mode-map (kbd "M-s f C-s") 
'cpio-dired-isearch-entry-names)
       ;; M-s f ESC     Prefix Command
       (define-key cpio-dired-mode-map "\M-sf" nil)
-      ;;  
+      ;;
       ;; M-s a C-s     dired-do-isearch
       (define-key cpio-dired-mode-map (kbd "M-s a C-s") 'cpio-dired-do-isearch)
       ;; M-s a ESC     Prefix Command
-      ;; 
+      ;;
       ;; M-s f C-M-s   dired-isearch-filenames-regexp
       (define-key cpio-dired-mode-map (kbd "M-s f C-M-s") 
'cpio-dired-isearch-entry-names-regexp)
-      ;; 
+      ;;
       ;; M-s a C-M-s   dired-do-isearch-regexp
       (define-key cpio-dired-mode-map (kbd "M-s a C-M-s") 
'cpio-dired-do-isearch-regexp)
       ;; C-x k -- kill the cpio-related buffers from the cpio-dired buffer.
diff --git a/cpio-entry-contents-mode.el b/cpio-entry-contents-mode.el
index 8a6adab..7116508 100644
--- a/cpio-entry-contents-mode.el
+++ b/cpio-entry-contents-mode.el
@@ -21,7 +21,7 @@
 ;; Author: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Maintainer: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Created: 2017 Dec 06
-;; Version: 0.16β
+;; yVersion: 0.17
 ;; Keywords: files
 
 ;;; Commentary:
diff --git a/cpio-hpodc.el b/cpio-entry-header.el
similarity index 83%
copy from cpio-hpodc.el
copy to cpio-entry-header.el
index cfa3852..26dffc9 100644
--- a/cpio-hpodc.el
+++ b/cpio-entry-header.el
@@ -1,28 +1,28 @@
-;;; cpio-hpodc.el --- handle hpodc cpio entry header formats. -*- coding: 
utf-8 -*-
+;;; cpio-entry-header.el --- handle cpio entry headers. -*- coding: utf-8 -*-
 
 ;; COPYRIGHT
-;; 
+;;
 ;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
-;; 
+;;
 ;; This program is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
-;; 
+;;
 ;; This program is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
-;; 
+;;
 ;; You should have received a copy of the GNU General Public License
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
-;; 
+;;
 
 ;; Author: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Maintainer: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Created: 2015 Jan 03
-;; Version: 0.16β
+;; Version: 0.17
 ;; Keywords: files
 
 ;;; Commentary:
@@ -33,23 +33,22 @@
 
 ;;
 ;; Dependencies
-;; 
+;;
 
 
-;; 
+;;
 ;; Vars
-;; 
+;;
 
 
-;; 
+;;
 ;; Library
-;; 
+;;
 
 
-;; 
+;;
 ;; Commands
-;; 
+;;
 
 
-(provide 'cpio-hpodc)
-;;; cpio-hpodc.el ends here.
+;;; cpio-entry-header.el ends here.
diff --git a/cpio-generic.el b/cpio-generic.el
index 6da6a8e..b4c795e 100644
--- a/cpio-generic.el
+++ b/cpio-generic.el
@@ -1,28 +1,28 @@
 ;;; cpio-generic.el --- generically useful functions created in support of 
CPIO mode. -*- coding: utf-8 -*-
 
 ;; COPYRIGHT
-;; 
+;;
 ;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
-;; 
+;;
 ;; This program is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
-;; 
+;;
 ;; This program is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
-;; 
+;;
 ;; You should have received a copy of the GNU General Public License
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
-;; 
+;;
 
 ;; Author: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Maintainer: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Created: 2015 Apr 23
-;; Version: 0.16β
+;; Version: 0.17
 ;; Keywords: files
 
 ;;; Commentary:
@@ -34,7 +34,7 @@
 ;;
 ;; A quick glance through it suggests
 ;; that it has a lot of functional overlap with cpio-modes.el.
-;; 
+;;
 
 ;;; Documentation:
 
@@ -42,12 +42,17 @@
 
 ;;
 ;; Dependencies
-;; 
+;;
+(eval-and-compile
+  (require 'cl))
+
+(declare-function signum "cl")
+
 
 
-;; 
+;;
 ;; Vars
-;; 
+;;
 
 (defvar *cg-integer-hex-digits* nil)
 
@@ -57,9 +62,9 @@
   "Value used to define that a marker has type 'insert before'.")
 
 
-;; 
+;;
 ;; Library
-;; 
+;;
 
 (defun cg-integer-hex-digits ()
   "Calculate the number of hex digits that are required to represent any 
integer."
@@ -99,12 +104,17 @@ CAVEAT: If NUMBER is negative, then the result may be 
surprising."
   (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)))))
+    (cond ((= 0 (mod number modulus))
+          number)
+         ((= (signum number) 1)
+          (* modulus (/ (+ number modulus -1) modulus)))
+         ((= (signum number) -1)
+          (* modulus (/ number modulus)))
+         (t
+          (error "%s(): Impossible condition." fname)))))
 
 (defun cg-pad-right (string width char)
-  "Pad STRING on the right with CHAR until it is WIDTH characters wide.
+  "Pad STRING on the right with CHAR until it is at least WIDTH characters 
wide.
 CHAR is typically a character or a single character string, but may be any 
string."
   (let ((fname "cg-pad-right"))
     (if (characterp char) (setq char (char-to-string char)))
@@ -132,9 +142,9 @@ If the optional argument MULTIPLES is not NIL,
 then match as many copies of RE as are there."
   (let ((fname "cg-strip-left")
        (inner-re (if multiples
-                     (concat "\\`+\\(" re "\\)")
+                     (concat "\\`\\(" re "\\)+")
                    (concat "\\`" re)))
-                 
+
        (result string))
     (save-match-data
       (if (string-match inner-re string)
@@ -149,8 +159,8 @@ then match as many copies of RE as are there."
        (result))
     (cg-strip-left re (cg-strip-right re string multiples) multiples)))
 
-(defun cpio-padded (string modulus pad-char)
-  "Pad the given STRING."
+(defun cpio-pad (string modulus pad-char)
+  "Pad the given STRING with PAD-CHAR so that the resulting string has at 
least length MODULUS."
   (let* ((fname "cpio-padded")
         (string-length (length string))
         (desired-length (cg-round-up string-length modulus)))
@@ -178,7 +188,9 @@ CAVEAT: This deletes any buffer holding /etc/passwd."
                    (t nil))
              (forward-line))))))
     (kill-buffer passwd-buffer)
-    (string-to-number uid)))
+    (if uid
+       (string-to-number uid)
+      nil)))
 
 (defun cpio-gid-for-group (group)
   "Return the GID (an integer) for the given GROUP (a string) if it exists.
@@ -205,7 +217,9 @@ CAVEAT: This deletes any buffer holding /etc/group."
                           (t nil))
                     (forward-line))))))
           (kill-buffer group-buffer)
-          (string-to-number gid))
+          (if gid
+              (string-to-number gid)
+            nil))
          (t nil))))
 
 (defmacro with-writable-buffer (&rest body)
@@ -310,7 +324,7 @@ Other languages are not yet implemented."
                         "\\)?"
                         "\\)")))
     (save-match-data
-      (cond 
+      (cond
        ((string-match (concat "\\`"
                              year-re
                              "[-/ ]+"
@@ -324,7 +338,7 @@ Other languages are not yet implemented."
        (setq year   (string-to-number     (match-string-no-properties 1 
human-time)))
        (setq month  (month-to-number      (match-string-no-properties 2 
human-time)))
        (setq day    (string-to-number     (match-string-no-properties 3 
human-time)))
-                                                                   
+
        (setq hour   (string-to-number (or (match-string-no-properties 5 
human-time) "0")))
        (setq minute (string-to-number (or (match-string-no-properties 6 
human-time) "0")))
        (setq second (string-to-number (or (match-string-no-properties 8 
human-time) "0"))))
@@ -333,7 +347,7 @@ Other languages are not yet implemented."
                              year-re
                              "[-/ ]+"
                              mon-re
-                             "[-/ ]+"                           
+                             "[-/ ]+"
                              day-re
                              "[- ]*"
                              time-re
@@ -342,7 +356,7 @@ Other languages are not yet implemented."
        (setq year   (string-to-number     (match-string-no-properties 1 
human-time)))
        (setq month  (month-to-number      (match-string-no-properties 2 
human-time)))
        (setq day    (string-to-number     (match-string-no-properties 3 
human-time)))
-                                                                   
+
        (setq hour   (string-to-number (or (match-string-no-properties 5 
human-time) "0")))
        (setq minute (string-to-number (or (match-string-no-properties 6 
human-time) "0")))
        (setq second (string-to-number (or (match-string-no-properties 8 
human-time) "0"))))
@@ -350,7 +364,7 @@ Other languages are not yet implemented."
        ((string-match (concat "\\`"
                              month-re
                              "[-/ ]+"
-                             day-re                             
+                             day-re
                              "[,]?\\s-+"
                              year-re
                              "[-/ ]*"
@@ -360,7 +374,7 @@ Other languages are not yet implemented."
        (setq year  (string-to-number      (match-string-no-properties 3 
human-time)))
        (setq month (month-to-number       (match-string-no-properties 1 
human-time)))
        (setq day   (string-to-number      (match-string-no-properties 2 
human-time)))
-                                                                   
+
        (setq hour   (string-to-number (or (match-string-no-properties 5 
human-time) "0")))
        (setq minute (string-to-number (or (match-string-no-properties 6 
human-time) "0")))
        (setq second (string-to-number (or (match-string-no-properties 8 
human-time) "0"))))
@@ -368,7 +382,7 @@ Other languages are not yet implemented."
        ((string-match (concat "\\`"
                              mon-re
                              "[-/ ]+"
-                             day-re                             
+                             day-re
                              "[,]?\\s-*"
                              year-re
                              "[-/ ]*"
@@ -378,7 +392,7 @@ Other languages are not yet implemented."
        (setq year   (string-to-number     (match-string-no-properties 3 
human-time)))
        (setq month  (month-to-number      (match-string-no-properties 1 
human-time)))
        (setq day    (string-to-number     (match-string-no-properties 2 
human-time)))
-                                                                   
+
        (setq hour   (string-to-number (or (match-string-no-properties 5 
human-time) "0")))
        (setq minute (string-to-number (or (match-string-no-properties 6 
human-time) "0")))
        (setq second (string-to-number (or (match-string-no-properties 8 
human-time) "0")))
@@ -441,7 +455,7 @@ Other languages are not yet implemented."
        (setq year   (string-to-number     (match-string-no-properties 1 
human-time)))
        (setq month  (string-to-number     (match-string-no-properties 2 
human-time)))
        (setq day    (string-to-number     (match-string-no-properties 3 
human-time)))
-                                                                   
+
        (setq hour   (string-to-number (or (match-string-no-properties 5 
human-time) "0")))
        (setq minute (string-to-number (or (match-string-no-properties 6 
human-time) "0")))
        (setq second (string-to-number (or (match-string-no-properties 8 
human-time) "0"))))
@@ -459,7 +473,7 @@ Other languages are not yet implemented."
        (setq year   (string-to-number     (match-string-no-properties 3 
human-time)))
        (setq month  (string-to-number     (match-string-no-properties 1 
human-time)))
        (setq day    (string-to-number     (match-string-no-properties 2 
human-time)))
-                                                                   
+
        (setq hour   (string-to-number (or (match-string-no-properties 5 
human-time) "0")))
        (setq minute (string-to-number (or (match-string-no-properties 6 
human-time) "0")))
        (setq second (string-to-number (or (match-string-no-properties 8 
human-time) "0"))))
@@ -474,7 +488,7 @@ Other languages are not yet implemented."
                              time-re
                              "?\\'")
                      human-time)
-          
+
        (setq year   (string-to-number     (match-string-no-properties 1 
human-time)))
        (setq month  (string-to-number     (match-string-no-properties 2 
human-time)))
        (setq day    (string-to-number     (match-string-no-properties 3 
human-time)))
@@ -482,7 +496,7 @@ Other languages are not yet implemented."
        (setq hour   (string-to-number (or (match-string-no-properties 5 
human-time) "0")))
        (setq minute (string-to-number (or (match-string-no-properties 6 
human-time) "0")))
        (setq second (string-to-number (or (match-string-no-properties 8 
human-time) "0"))))
-       
+
        (t (message "Unknown format.")
          nil)))
     (if year
@@ -517,7 +531,7 @@ Other languages are not yet implemented."
             11)
            ((string-match "dec" (substring month-name 0 3))
             12)
-           (t (message "%s(): Unknown month [[%s]]." fname month-name))))))
+           (t (error "%s(): Unknown month [[%s]]." fname month-name))))))
 
 ;; HEREHERE Remove this before publishing or
 ;; figure out how to put it in test-generic.el.
@@ -595,7 +609,6 @@ Other languages are not yet implemented."
 
 
 
-                    
 
                     "11 09 2018"
                     "11 09 2018 9:53"
@@ -689,9 +702,9 @@ Other languages are not yet implemented."
     (goto-char (point-min))))
 
 
-;; 
+;;
 ;; Commands
-;; 
+;;
 
 
 (provide 'cpio-generic)
diff --git a/cpio-hpbin.el b/cpio-hpbin.el
index e7c98cf..76f1d46 100644
--- a/cpio-hpbin.el
+++ b/cpio-hpbin.el
@@ -1,28 +1,28 @@
 ;;; cpio-hpbin.el --- handle hpbin cpio entry header formats. -*- coding: 
utf-8 -*-
 
 ;; COPYRIGHT
-;; 
+;;
 ;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
-;; 
+;;
 ;; This program is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
-;; 
+;;
 ;; This program is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
-;; 
+;;
 ;; You should have received a copy of the GNU General Public License
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
-;; 
+;;
 
 ;; Author: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Maintainer: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Created: 2015 Jan 03
-;; Version: 0.16β
+;; Version: 0.17
 ;; Keywords: files
 
 ;;; Commentary:
@@ -33,22 +33,22 @@
 
 ;;
 ;; Dependencies
-;; 
+;;
 
 
-;; 
+;;
 ;; Vars
-;; 
+;;
 
 
-;; 
+;;
 ;; Library
-;; 
+;;
 
 
-;; 
+;;
 ;; Commands
-;; 
+;;
 
 
 (provide 'cpio-hpbin)
diff --git a/cpio-hpodc.el b/cpio-hpodc.el
index cfa3852..41576b8 100644
--- a/cpio-hpodc.el
+++ b/cpio-hpodc.el
@@ -1,28 +1,28 @@
 ;;; cpio-hpodc.el --- handle hpodc cpio entry header formats. -*- coding: 
utf-8 -*-
 
 ;; COPYRIGHT
-;; 
+;;
 ;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
-;; 
+;;
 ;; This program is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
-;; 
+;;
 ;; This program is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
-;; 
+;;
 ;; You should have received a copy of the GNU General Public License
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
-;; 
+;;
 
 ;; Author: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Maintainer: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Created: 2015 Jan 03
-;; Version: 0.16β
+;; Version: 0.17
 ;; Keywords: files
 
 ;;; Commentary:
@@ -33,22 +33,22 @@
 
 ;;
 ;; Dependencies
-;; 
+;;
 
 
-;; 
+;;
 ;; Vars
-;; 
+;;
 
 
-;; 
+;;
 ;; Library
-;; 
+;;
 
 
-;; 
+;;
 ;; Commands
-;; 
+;;
 
 
 (provide 'cpio-hpodc)
diff --git a/cpio-mode.el b/cpio-mode.el
index 3c1fdf6..c546a85 100644
--- a/cpio-mode.el
+++ b/cpio-mode.el
@@ -2,7 +2,7 @@
 
 ;; Author: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Maintainer: Douglas Lewan <d.lewan2000@gmail.com>
-;; Version: 0.16β
+;; Version: 0.17
 ;; Long description: cpio-mode provides a dired-like interface for working 
with cpio archives. You can view, edit and save entries. You can also change 
permissions, UID, etc.
 ;; Dependencies: (bindat 24.5) (cl 24.5) (ert 24.5)
 ;; Created: 2015 Jan 03
@@ -11,17 +11,17 @@
 
 ;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
-;; 
+;;
 ;; This program is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
-;; 
+;;
 ;; This program is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the
 ;; GNU General Public License for more details.
-;; 
+;;
 ;; You should have received a copy of the GNU General Public License
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
@@ -35,75 +35,75 @@
 
 ;;; Documentation:
 
-;; 
+;;
 ;; NAME: cpio-mode
-;; 
+;;
 ;; USAGE:
 ;;     (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)
+;;      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))).
+;;        (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))).
-;; 
+;;      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
 ;;     in a manner like dired-mode.
 ;;     tar-mode already does such a thing for tar archives,
 ;;     and some ideas (and likely code) have been adapted from tar-mode.
-;; 
+;;
 ;;     To automatically invoke cpio-mode when finding a file
 ;;     add the following to your find-file-hook.
-;; 
+;;
 ;;     You can use toggle-cpio-mode to switch between cpio-mode
 ;;     and fundamental mode.
-;; 
+;;
 ;; KEYMAP:
 ;;     This should be conceptually as close to dired as I can make it.
-;; 
+;;
 ;; OPTIONS:
-;; 
+;;
 ;; ENVIRONMENT:
 ;;     Early development was done under emacs 24.2
 ;;     on the Fedora 18 distribution of 64 bit GNU/Linux.
-;; 
+;;
 ;;     Later development happened under emacs 24.5
 ;;     on GNU/Linux Mint, Linux kernel 4.4.0.
 ;;
 ;;     Current development is happening on emacs 24.5
 ;;     on GNU/Linux Trisquel, Linux Kernel 4.4.0.
-;; 
+;;
 ;; RETURN CODE:
-;; 
+;;
 ;; NOTES:
 ;;     Binary formats are not yet implemented.
-;; 
+;;
 ;; CAVEATS:
 ;;     Only regular files can be edited.
 ;;     I'm not sure what to do with symbolic links yet.
-;; 
+;;
 ;; SECURITY ISSUES:
 ;;     There are no ownership/group-ship tests on anything.
 ;;     You could create an archive with bad behavior
 ;;     (for example, a set-uid executable)
 ;;     when unpacked by root.
-;; 
+;;
 
-;; 
+;;
 ;; cpio-mode.el is the entry point to all of cpio-mode code.
 ;; It defines the archive management variables and functions
 ;; that define cpio-mode.
@@ -112,7 +112,7 @@
 ;;    defined in
 ;;    • cpio-generic.el, truly generic code,
 ;;    • cpio-modes.el, file-mode related information,
-;; 2. Every archive format has its own file: 
+;; 2. Every archive format has its own file:
 ;;    cpio-bin for the cpio binary format,
 ;;    cpio-crc for the cpio CRC format,
 ;;    etc.
@@ -121,55 +121,55 @@
 ;;    a list of the information of all the headers
 ;;    in the current archive.
 ;; 4. The package cpio-dired, defining the user interface.
-;; 
+;;
 ;; The following figure shows the relationships
 ;; among those components.
-;; 
-;; +----------------------+   +-------------+   +-------------+
-;; | Format specific code |   |             |   |             |
-;; | +---------------+    |   |             |   |             |
-;; | | cpio-bin      |    |   |             |   |             |
-;; | | +--------------+   |   |    CPIO     |   | dired-like  |
-;; | +-|cpio-crc      |   |<->|    Logic    |<->|     UI      |
-;; |   | +-------------+  |   |             |   |             |
-;; |   +-| hpbin       |  |   |             |   |             |
-;; |     | +------------+ |   |             |   |             |
-;; |     +-| ···        | |   |             |   |             |
-;; |       +------------+ |   |             |   |             |
-;; +----------------------+   +-------------+   +-------------+
-;;             Λ                     Λ                 Λ
-;;             |                     |                 |
-;;             V                     V                 V
+;;
+;; +----------------------+   +-------------+  +-------------+
+;; | Format specific code |   |                    |   |             |
+;; | +---------------+   |   |             |   |             |
+;; | | cpio-bin             |    |   |             |   |             |
+;; | | +--------------+          |   |    CPIO     |   | dired-like  |
+;; | +-|cpio-crc      |          |<->|    Logic    |<->|     UI      |
+;; |   | +-------------+  |   |                    |   |             |
+;; |   +-| hpbin       |  |   |                    |   |             |
+;; |    | +------------+ |   |             |   |             |
+;; |    +-| ···        | |   |             |   |             |
+;; |      +------------+ |   |             |   |             |
+;; +----------------------+   +-------------+  +-------------+
+;;            Λ                     Λ                 Λ
+;;            |                     |                 |
+;;            V                     V                 V
 ;; +----------------------------------------------------------+
-;; | generic code                                             |
-;; |          +------------+ +--------------+ +-----+         |
-;; |          | cpio-modes | | cpio-generic | | ··· |         |
-;; |          +------------+ +--------------+ +-----+         |
+;; | generic code                                            |
+;; |         +------------+ +--------------+ +-----+         |
+;; |         | cpio-modes | | cpio-generic | | ··· |         |
+;; |         +------------+ +--------------+ +-----+         |
 ;; +----------------------------------------------------------+
-;; 
+;;
 ;; The basic idea is that the format-spedific code parses and makes headers
 ;; while all the cpio logic uses those parsed headers to edit
 ;; and calls format-specific parsing and making functions.
-;; 
+;;
 ;; The main data structures are the following.
-;; 
+;;
 ;; 0. Parsed headers, an inode-like array structure.
-;; 
+;;
 ;; 1. Entries, an array containing a parsed header,
 ;;    the header start and the contents start.
-;; 
+;;
 ;; 2. The catalog, a list of the entries in the cpio archive,
 ;;    including the trailer.
-;; 
+;;
 ;; 3. The buffer holding the archive.
 ;;    This buffer is put into cpio-mode.
 ;;    It holds all the "global" data,
 ;;    like the catalog described above.
-;; 
+;;
 ;; 4. The buffer holding the dired-like UI.
 ;;    cpio-mode creates this buffer and
 ;;    puts this buffer into cpio-dired-mode.
-;; 
+;;
 ;; 5. Buffers visiting entries.
 ;;    cpio-dired-mode uses the archive buffer
 ;;    to get entry contents and them in the visiting buffer.
@@ -181,16 +181,16 @@
 
 ;;
 ;; All files that define cpio-mode begin with "cpio."
-;; 
+;;
 ;; Global variables all begin '*cpio-...'.
 ;; Functions are named 'cpio-...'.
-;; 
+;;
 ;; The corresponding archive format specific names for format FMT
 ;; begin '*cpio-FMT-...' and 'cpio-FMT-...'.
 ;; The format-specific variables names are calculated
 ;; in (cpio-set-local-vars).
 ;; That function drops directly into corresponding format-specific functions
-;;     
+;;
 ;; The format-specific function names are calculated
 ;; in (cpio-set-local-funcs).
 ;; Here is the process:
@@ -199,19 +199,19 @@
 ;;     --> "cpio" "do" "good" "stuff"
 ;;     --> "cpio-fmt-do-good-stuff"
 ;;     --> cpio-fmt-do-good-stuff
-;; 
+;;
 ;; The index of FIELD within a parsed header is named 'cpio-FIELD-parsed-idx'.
 ;;
 ;; Each archive format FMT has a regular expression
 ;; that identifies that format unambiguously called '*cpio-FMT-header-re*'.
-;; 
+;;
 ;; The functions (cpio-get-FIELD) operate directly on the header
 ;; to extract FIELD.
 ;; It's not clear that these need to be defined here.
 ;;
 ;; The functions (cpio-FIELD) operate on a parsed header
 ;; to extract FIELD.
-;; 
+;;
 ;; Depending on the context the expression "entry attributes",
 ;; often abbreviated "attrs", and the phrase "parsed header"
 ;; are used to reference the structure
@@ -227,13 +227,13 @@
 ;; The context should make it clear which is intended.
 ;; Yes, in principle they're isomorphic.
 ;; (And, yes, I hate specifications that depend on context.)
-;; 
+;;
 
 ;;; Code:
 
 ;;
 ;; Dependencies
-;; 
+;;
 
 
 (require 'dired)
@@ -303,9 +303,9 @@
 ;;;;;;;;;;;;;;;;
 
 
-;; 
+;;
 ;; Vars
-;; 
+;;
 (defvar *cpio-format* ()
   "The format of the cpio archive in the current-buffer.
 Takes the values 'bin, 'newc, 'odc etc.")
@@ -351,13 +351,13 @@ with their corresponding archive types.
 The archive types are symbols: 'bin, 'newc, 'odc, etc.
 See `cpio-discern-archive-type' for the full list.")
 (setq *cpio-re-type-alist* (list
-                           (cons *cpio-bin-header-re*   'bin)
-                           (cons *cpio-crc-header-re*   'crc)
+                           (cons *cpio-bin-header-re*   'bin)
+                           (cons *cpio-crc-header-re*   'crc)
                            (cons *cpio-hpbin-header-re* 'hpbin)
                            (cons *cpio-hpodc-header-re* 'hpodc)
-                           (cons *cpio-newc-header-re*  'newc)
-                           (cons *cpio-odc-header-re*   'odc)
-                           (cons *cpio-tar-header-re*   'tar)
+                           (cons *cpio-newc-header-re*  'newc)
+                           (cons *cpio-odc-header-re*   'odc)
+                           (cons *cpio-tar-header-re*   'tar)
                            (cons *cpio-ustar-header-re* 'ustar)))
 
 (defvar cpio-build-catalog-func ()
@@ -516,11 +516,11 @@ A parsed header is a vector of the following form:
   ;; (setq i (1+ i))
   (defvar *cpio-catalog-entry-attrs-idx* i)
   (setq *cpio-catalog-entry-attrs-idx* i)
-  
+
   (setq i (1+ i))
   (defvar *cpio-catalog-entry-header-start-idx* i)
   (setq *cpio-catalog-entry-header-start-idx* i)
-  
+
   (setq i (1+ i))
   (defvar *cpio-catalog-entry-contents-start-idx* i)
   (setq *cpio-catalog-entry-contents-start-idx* i)
@@ -627,7 +627,7 @@ for a cpio archive of the current format.")
 
 ;;
 ;; Customizations
-;; 
+;;
 (defgroup cpio ()
   "Customizations for cpio-mode."
   :group 'data)
@@ -638,9 +638,9 @@ for a cpio archive of the current format.")
   :group 'cpio)
 
 
-;; 
+;;
 ;; Library
-;; 
+;;
 
 (defun cpio-mode-find-file-hook ()
   "find-file hook to detect if a file is likely a cpio archive.
@@ -665,15 +665,15 @@ and NIL if the current buffer does not begin with a cpio 
entry header."
          (setq i (1+ i)))))
     (with-syntax-table *cpio-archive-syntax-table*
       (save-excursion
-       (widen)
+       (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))
+       (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))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -761,7 +761,7 @@ CAVEAT: See `cpio-magic'."
     (aref parsed-header *cpio-rdev-min-parsed-idx*)))
 
 (defun cpio-namesize (parsed-header)
-  "Return the size of the name  in PARSED-HEADER.
+  "Return the size of the name in PARSED-HEADER.
 CAVEAT: See `cpio-magic'."
   (let ((fname "cpio-namesize"))
     (aref parsed-header *cpio-namesize-parsed-idx*)))
@@ -851,7 +851,7 @@ WHERE can be an integer or marker."
           (with-current-buffer *cab-parent*
             (cpio-contents entry-name)))
          ((eq major-mode 'cpio-mode)
-          (let* ((entry-attrs    (cpio-entry-attrs    entry-name))
+          (let* ((entry-attrs    (cpio-entry-attrs    entry-name))
                  (contents-start (cpio-contents-start entry-name))
                  (contents-size  (cpio-entry-size entry-attrs))
                  (contents-end (+ contents-start contents-size))
@@ -1038,7 +1038,7 @@ CONTRACT: ENTRY-NAME is in fact an entry of a regular 
file."
                 (write-file entry-name))
               (unless restore (kill-buffer temp-buffer)))
              (t
-              (with-temp-buffer 
+              (with-temp-buffer
                 (insert (cpio-contents entry-name archive-buffer))
                 (write-file entry-name)
                 (unless restore (kill-buffer temp-buffer)))
@@ -1071,21 +1071,21 @@ If ENTRY-NAME is not in the current archive, then 
return NIL."
 (defun cpio-numeric-entry-type (numeric-mode)
   "Return the numeric entry type of the given NUMERIC MODE."
   (let ((fname "cpio-numeric-entry-type"))
-    (cond ((= #o170000 (logand s-ifmt   numeric-mode))
+    (cond ((= #o170000 (logand s-ifmt  numeric-mode))
           s-ifmt)
          ((= #o140000 (logand s-ifsock numeric-mode))
           s-ifsock)
-         ((= #o120000 (logand s-iflnk  numeric-mode))
+         ((= #o120000 (logand s-iflnk  numeric-mode))
           s-iflnk)
-         ((/= 0       (logand s-ifreg  numeric-mode))
+         ((/= 0       (logand s-ifreg  numeric-mode))
           s-ifreg)
-         ((/= 0       (logand s-ifdir  numeric-mode))
+         ((/= 0       (logand s-ifdir  numeric-mode))
           s-ifdir)
-         ((/= s-ifblk (logand s-ifblk  numeric-mode))
+         ((/= s-ifblk (logand s-ifblk  numeric-mode))
           s-ifblk)
-         ((/= 0       (logand s-ifchr  numeric-mode))
+         ((/= 0       (logand s-ifchr  numeric-mode))
           s-ifchr)
-         ((/= 0       (logand s-ififo  numeric-mode))
+         ((/= 0       (logand s-ififo  numeric-mode))
           s-ififo)
          (t
           s-ifunk))))
@@ -1101,7 +1101,7 @@ based on its attributes in the catalog."
         (gid (cpio-gid-to-gid-string (cpio-gid attrs))))
     (cpio-set-file-owner   file-name uid)
     (cpio-set-file-group   file-name gid)
-    (cpio-set-file-mode    file-name mode-value)
+    (cpio-set-file-mode           file-name mode-value)
     (cpio-set-file-modtime file-name modtime)))
 
 (defun cpio-set-file-owner (file-name user) ;HEREHERE Generic?
@@ -1238,7 +1238,7 @@ CONTRACT: You're at the point of insertion."
        (with-current-buffer *cab-parent*
          (cpio-insert-padded-header header-string))
       (with-writable-buffer
-       (insert (cpio-padded header-string *cpio-padding-modulus* 
*cpio-padding-char*))))))
+       (insert (cpio-pad header-string *cpio-padding-modulus* 
*cpio-padding-char*))))))
 
 (defun cpio-insert-padded-contents (contents) ;HEREHERE Generic
   "Insert an appropriately padded version of CONTENTS into the archive buffer.
@@ -1249,7 +1249,7 @@ CONTRACT: Point is at the point of insertion."
          (cpio-insert-padded-contents contents))
       (with-writable-buffer
        ;; (cpio-set-contents-start (point))
-       (insert (cpio-padded contents *cpio-padding-modulus* 
*cpio-padding-char*))))))
+       (insert (cpio-pad contents *cpio-padding-modulus* 
*cpio-padding-char*))))))
 
 (defun cpio-sort-catalog ()
   "Return a copy of the catalog sorted by entry name (car cpio-catalog-entry)."
@@ -1259,7 +1259,7 @@ CONTRACT: Point is at the point of insertion."
 (defun cpio-entry-less-p (l r)
   "Return non-nil if [the car of] entry L precedes [the car of] entry L.
 CONTRACT: L and R should be entries:
-        (entry-name [inode mode uid ...] entry-start entry-end)."
+       (entry-name [inode mode uid ...] entry-start entry-end)."
   (let ((fname "cpio-entry-less-p"))
     (string-lessp (car l) (car r))))
 
@@ -1370,7 +1370,7 @@ a UNIX/GNU/Linux time as an integer."
                  (= 0 (buffer-size)))
             ;; I can't seem to get coding right.
             ;; (cpio-set-auto-coding (setq contents (cpio-contents 
entry-name)))
-            (with-writable-buffer 
+            (with-writable-buffer
              (insert (cpio-contents entry-name)))
             (goto-char (point-min)))
            (t t))
@@ -1390,7 +1390,7 @@ a UNIX/GNU/Linux time as an integer."
 (defun cpio-contents-buffer-name (name)
   "Return the name of the buffer that would/does hold the contents of entry 
NAME.
 CAVEAT: Yes, there's a possibility of a collision here.
-However, that would mean that you're editing 
+However, that would mean that you're editing
 more than one archive, each containing entries of the same name
 more than one of whose contents you are currently editing.
 Run more than one instance of emacs to avoid such collisions."
@@ -1398,7 +1398,7 @@ Run more than one instance of emacs to avoid such 
collisions."
     ;; (format "%s (in cpio archive %s)" name (file-name-nondirectory 
(buffer-file-name *cab-parent*)))))
     name))
 ;;    (expand-file-name
-;;      (concat name "!"))))
+;;     (concat name "!"))))
 
 (defun cpio-create-entry-attrs (filename)
   "Create an entry attribute structure based on the given FILENAME."
@@ -1423,10 +1423,10 @@ Run more than one instance of emacs to avoid such 
collisions."
         (chksum (cpio-make-chksum-for-file filename))
 
         (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*      (seconds-to-time mtime))
@@ -1437,9 +1437,9 @@ Run more than one instance of emacs to avoid such 
collisions."
     (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-chksum-parsed-idx*     chksum)
-    (aset result *cpio-name-parsed-idx*       filename)
+    (aset result *cpio-name-parsed-idx*              filename)
 
     result))
 
@@ -1462,7 +1462,7 @@ many are simply invented."
                       s-ixusr))
         (uid (user-uid))
         (gid (group-gid))
-        
+
         (nlink 1)
         (now (current-time))
         (mtime (list (nth 0 now) (nth 1 now)))
@@ -1475,24 +1475,24 @@ many are simply invented."
         (namesize (1+ (length name)))
         (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-entry-size-parsed-idx* entry-size)
     (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-chksum-parsed-idx*     chksum)
-    (aset result *cpio-name-parsed-idx*       name)
-    
+    (aset result *cpio-name-parsed-idx*              name)
+
     result))
 
 (defun cpio-entry-exists-p (name)
@@ -1524,7 +1524,7 @@ in the current archive."
 
 ;;
 ;; Functions about the modified state of a catalog entry.
-;; 
+;;
 (defun cpio-set-entry-unmodified (catalog-entry)
   "Mark the given CATALOG-ENTRY as not modified."
   (let ((fname "cpio-set-entry-unmodified"))
@@ -1542,7 +1542,7 @@ in the current archive."
   (let ((fname "cpio-entry-modified-p")
        (modified-flag))
     (cpio-validate-catalog-entry catalog-entry)
-    (cond ((eq 'cpio-mode-modified 
+    (cond ((eq 'cpio-mode-modified
               (setq modified-flag (aref catalog-entry 
*cpio-catalog-entry-modified-flag-idx*)))
           t)
          ((eq 'cpio-mode-unmodified catalog-entry)
@@ -1595,7 +1595,7 @@ contents of the current buffer following point against
 `auto-coding-regexp-alist'.  If no match is found, it checks for a
 `coding:' tag in the first one or two lines following point.  If no
 `coding:' tag is found, it checks any local variables list in the last
-3K bytes out of the SIZE bytes.  Finally, if none of these methods
+3K bytes out of the SIZE bytes.         Finally, if none of these methods
 succeed, it checks to see if any function in `auto-coding-functions'
 gives a match.
 
@@ -1638,11 +1638,11 @@ If nothing is specified, the return value is nil."
                       (string-match
                        "\\(.*;\\)?[ \t]*unibyte:[ \t]*\\([^ ;]+\\)"
                        contents))
-              (display-warning 'mule
-                               (format "\"unibyte: t\" (in %s) is obsolete; \
+             (display-warning 'mule
+                              (format "\"unibyte: t\" (in %s) is obsolete; \
 use \"coding: 'raw-text\" instead."
-                                       (file-relative-name entry-name))
-                               :warning)
+                                      (file-relative-name entry-name))
+                              :warning)
              (setq coding-system 'raw-text))
            (when (and (not coding-system)
                       (string-match
@@ -1704,7 +1704,7 @@ or nil."
          (cpio-set-coding-system entry-name))
       ;; (setq last-coding-system-used
       ;;       (car (find-coding-systems-region (cpio-contents-start 
entry-name)
-      ;;                                       (cpio-contents-end   
entry-name))))
+      ;;                                       (cpio-contents-end   
entry-name))))
       (set-buffer-file-coding-system last-coding-system-used 'force 
'nomodify))))
 
 (defun cpio-not-modified ()
@@ -1721,9 +1721,9 @@ or nil."
                         (not-modified))))
                 *cab-subordinates*)))))
 
-;; 
+;;
 ;; Commands
-;; 
+;;
 
 (defun cpio-view-dired-style-buffer ()
   "Switch to the dired style buffer corresponding to this archive buffer."
@@ -1738,9 +1738,9 @@ or nil."
     (switch-to-buffer (cpio-dired-buffer-name archive-file-name))))
 
 
-;; 
+;;
 ;; Mode definition
-;; 
+;;
 
 ;; HEREHERE I'm hoping dired-mode gives me decent stuff for free.
 ;; dired-mode -- Nope the hooks for dired-mode want a nicer environment.
@@ -1751,13 +1751,13 @@ or nil."
   (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)))
 
-  ;; 
+  ;;
   ;; HEREHERE Get rid of this once things look clean.
-  ;; 
+  ;;
   (cpio-backup-during-development)
-  ;; 
+  ;;
   ;; EO temporary code for development
-  ;; 
+  ;;
   
   (let ((archive-buffer (current-buffer))
        (cpio-dired-buffer))
@@ -1778,9 +1778,9 @@ or nil."
     ;; so this should control what we see at this point.
     (switch-to-buffer cpio-dired-buffer)))
 
-;; 
+;;
 ;; HEREHERE Get rid of this once things look clean.
-;; 
+;;
 (defun cpio-backup-during-development ()
   "Create a time-stamped backup of the file in the current-buffer.
 There's an implied CONTRACT there:
@@ -1792,9 +1792,9 @@ The buffer must contain a file."
                              (format-time-string "%Y%m%d%H%H%M%S.%3N"))))
     (copy-file filename backup-file nil 'keep-time 'preserve-uid-gid 
'preserve-permissions)))
 
-;; 
+;;
 ;; EO temporary code for development
-;; 
+;;
 
 
 (defvar *cpio-dired-modified* nil
@@ -1856,7 +1856,7 @@ and, thus, the archive can be saved."
     (setq cpio-mode-map keymap)
     (unless *cpio-have-made-keymap*
       (define-key cpio-mode-map "\C-c\C-c" 'cpio-view-dired-style-buffer)
-      (define-key cpio-mode-map        "q" 'cpio-quit))))
+      (define-key cpio-mode-map               "q" 'cpio-quit))))
 
 (defun cpio-quit ()
   "Quit cpio mode and kill all the affiliated buffers."
@@ -2019,7 +2019,7 @@ See *cpio-local-funcs* for more information."
 (defun cpio-set-local-ustar-vars ()
   "Set buffer local variables appropriate for a USTAR format CPIO archive."
   (let ((fname "cpio-set-local-ustar-vars"))
-    (error "%s() is not yet implemented" fname)))
+x    (error "%s() is not yet implemented" fname)))
 
 (defun cpio-set-local-hpbin-vars ()
   "Set buffer local variables appropriate for a HPBIN format CPIO archive."
diff --git a/cpio-modes.el b/cpio-modes.el
index a506317..d190ef0 100644
--- a/cpio-modes.el
+++ b/cpio-modes.el
@@ -1,27 +1,27 @@
 ;;; cpio-modes.el --- handle file modes/permissions. -*- coding: utf-8 -*-
 
 ;; COPYRIGHT
-;; 
+;;
 ;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
-;; 
+;;
 ;; This program is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
-;; 
+;;
 ;; This program is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
-;; 
+;;
 ;; You should have received a copy of the GNU General Public License
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;; Author: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Maintainer: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Created: 2017 Nov 28
-;; Version: 0.16β
+;; Version: 0.17
 ;; Keywords: files
 
 ;;; Commentary:
@@ -34,9 +34,10 @@
 
 ;;
 ;; Dependencies
-;; 
+;;
 (eval-when-compile
-  (require 'cl-lib))
+  (require 'cl-lib)
+  (require 'cl-extra))
 
 ;;;;;;;;;;;;;;;;
 ;; Things to make the byte compiler happy.
@@ -45,12 +46,12 @@
 ;;;;;;;;;;;;;;;;
 
 
-;; 
+;;
 ;; Vars
 ;;
 ;;
 ;; Mode-related bits (adapted from /usr/include/linux/stat.h).
-;; 
+;;
 
 (defconst s-ifunk  #o1000000)
 (defconst s-ifmt   #o0170000)
@@ -84,9 +85,9 @@
   "A bit mask of the modes that can be set by chmod(1).")
 
 
-;; 
+;;
 ;; Library
-;; 
+;;
 
 (defun s-islnk (m)
   (= (logand m s-ifmt) s-iflnk))
@@ -206,7 +207,7 @@ please let me know."
           (if (/= (logand int-mode s-isuid) 0)
               "s"
             "x"))
-         (t 
+         (t
           (if (/= (logand int-mode s-isuid) 0)
               "S"
             "-")))))
@@ -240,7 +241,7 @@ please let me know."
           (if (/= (logand int-mode s-isgid) 0)
               "s"
             "x"))
-         (t 
+         (t
           (if (/= (logand int-mode s-isgid) 0)
               "S"
             "-")))))
@@ -274,7 +275,7 @@ please let me know."
           (if (/= (logand s-isvtx int-mode) 0)
               "t"
             "x"))
-         (t 
+         (t
           (if (/= (logand s-isvtx int-mode) 0)
               "T"
             "-")))))
@@ -286,10 +287,10 @@ please let me know."
   (let* ((fname "cpio-mode-string-to-int-mode")
         (bits 0)
         (chars (mapcar 'string-to-char (split-string mode-string "" t)))
-        (type-char (car (subseq chars 0  1)))
-        (owner-chars    (subseq chars 1  4))
-        (group-chars    (subseq chars 4  7))
-        (other-chars    (subseq chars 7 10)))
+        (type-char (car (cl-subseq chars 0  1)))
+        (owner-chars    (cl-subseq chars 1  4))
+        (group-chars    (cl-subseq chars 4  7))
+        (other-chars    (cl-subseq chars 7 10)))
     (setq bits (logior bits
                       (cpio-type-char-to-bits type-char)
                       (cpio-owner-chars-to-bits owner-chars)
diff --git a/cpio-newc.el b/cpio-newc.el
index 4752272..7b01f7d 100644
--- a/cpio-newc.el
+++ b/cpio-newc.el
@@ -1,28 +1,28 @@
 ;;; cpio-newc.el --- handle portable newc cpio archives. -*- coding: utf-8 -*-
 
 ;; COPYRIGHT
-;; 
+;;
 ;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
-;; 
+;;
 ;; This program is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
-;; 
+;;
 ;; This program is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the
 ;; GNU General Public License for more details.
-;; 
+;;
 ;; You should have received a copy of the GNU General Public License
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
-;; 
+;;
 
 ;; Author: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Maintainer: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Created: 2015 Jan 03
-;; Version: 0.16β
+;; Version: 0.17
 ;; Keywords: files
 
 ;;; Commentary:
@@ -39,7 +39,7 @@
 ;; to parse a newc header.
 ;; Every FIELD's matching substring has an index named
 ;; *cpio-newc-FIELD-idx*'.
-;; 
+;;
 ;; HEREHERE The following are currently UNUSED:
 ;; Every FIELD has a function (cpio-newc-get-FIELD)
 ;; that operates on a parsed header to retrieve the value of that FIELD.
@@ -47,10 +47,10 @@
 ;; After all, a parsed header has the same structure for each format.
 
 ;;; Code:
-
+
 ;;
 ;; Dependencies
-;; 
+;;
 (eval-when-compile
   (require 'cl-lib))
 (require 'cl-lib)
@@ -58,9 +58,9 @@
 ;; (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")))))
+;;     (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.
@@ -81,15 +81,15 @@
 (declare-function cpio-entry-attrs "cpio-mode.el")
 ;; EO things for the byte compiler.
 ;;;;;;;;;;;;;;;;
-
-;; 
+
+;;
 ;; Vars
-;; 
+;;
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; 
+;;
 ;; newc header format vars
-;; 
+;;
 
 (defconst *cpio-newc-header-length* (length 
"07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000B00000000")
   "The length of a newc header.")
@@ -151,7 +151,7 @@
   "RE to match the c_namesize field in a newc header.")
 (setq *cpio-newc-namesize-re* "[[:xdigit:]]\\{8\\}")
 
-(defconst *cpio-newc-chksum-re*  "[[:xdigit:]]\\{8\\}"
+(defconst *cpio-newc-chksum-re*         "[[:xdigit:]]\\{8\\}"
   "RE to match the CRC checksum in a newc header.")
 (setq *cpio-newc-chksum-re* "[[:xdigit:]]\\{8\\}")
 
@@ -161,14 +161,14 @@
 
 (defconst *cpio-newc-header-re* ()
   "RE to match newc header format cpio archives.")
-(setq *cpio-newc-header-re* (concat "\\(" *cpio-newc-magic-re*    "\\)"
-                                   "\\(" *cpio-newc-ino-re*      "\\)"
-                                   "\\(" *cpio-newc-mode-re*     "\\)"
-                                   "\\(" *cpio-newc-uid-re*      "\\)"
-                                   "\\(" *cpio-newc-gid-re*      "\\)"
-
-                                   "\\(" *cpio-newc-nlink-re*    "\\)"
-                                   "\\(" *cpio-newc-mtime-re*    "\\)"
+(setq *cpio-newc-header-re* (concat "\\(" *cpio-newc-magic-re*   "\\)"
+                                   "\\(" *cpio-newc-ino-re*      "\\)"
+                                   "\\(" *cpio-newc-mode-re*     "\\)"
+                                   "\\(" *cpio-newc-uid-re*      "\\)"
+                                   "\\(" *cpio-newc-gid-re*      "\\)"
+
+                                   "\\(" *cpio-newc-nlink-re*    "\\)"
+                                   "\\(" *cpio-newc-mtime-re*    "\\)"
                                    "\\(" *cpio-newc-filesize-re* "\\)"
                                    "\\(" *cpio-newc-dev-maj-re*  "\\)"
                                    "\\(" *cpio-newc-dev-min-re*  "\\)"
@@ -176,7 +176,7 @@
                                    "\\(" *cpio-newc-rdev-maj-re* "\\)"
                                    "\\(" *cpio-newc-rdev-min-re* "\\)"
                                    "\\(" *cpio-newc-namesize-re* "\\)"
-                                   "\\(" *cpio-newc-chksum-re*   "\\)"
+                                   "\\(" *cpio-newc-chksum-re*   "\\)"
                                    "\\(" *cpio-newc-filename-re* "\\)"
                                    "\0"))
 
@@ -240,9 +240,9 @@
   (defconst *cpio-newc-filename-re-idx* 0 ; (setq i (1+ i))
     "Index of the sub RE from *cpio-newc-header-re* to parse the namesize.")
   (setq *cpio-newc-filename-re-idx* (setq i (1+ i))))
-;; 
+;;
 ;; EO newc header variables.
-;; 
+;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 ;; *cpio-newc-magic-re*
@@ -275,22 +275,22 @@ in a newc cpio archive.")
   (setq *cpio-newc-magic-field-offset* i)
   (setq i (1+ i))
   (defconst *cpio-newc-ino-field-offset*      (+ l (* *cpio-newc-field-width* 
i)))
-  (setq *cpio-newc-ino-field-offset*          (+ l (* *cpio-newc-field-width* 
(1- i))))
+  (setq *cpio-newc-ino-field-offset*         (+ l (* *cpio-newc-field-width* 
(1- i))))
   (setq i (1+ i))
   (defconst *cpio-newc-mode-field-offset*     (+ l (* *cpio-newc-field-width* 
i)))
-  (setq *cpio-newc-mode-field-offset*         (+ l (* *cpio-newc-field-width* 
(1- i))))
+  (setq *cpio-newc-mode-field-offset*        (+ l (* *cpio-newc-field-width* 
(1- i))))
   (setq i (1+ i))
   (defconst *cpio-newc-uid-field-offset*      (+ l (* *cpio-newc-field-width* 
i)))
-  (setq *cpio-newc-uid-field-offset*          (+ l (* *cpio-newc-field-width* 
(1- i))))
+  (setq *cpio-newc-uid-field-offset*         (+ l (* *cpio-newc-field-width* 
(1- i))))
   (setq i (1+ i))
   (defconst *cpio-newc-gid-field-offset*      (+ l (* *cpio-newc-field-width* 
i)))
-  (setq *cpio-newc-gid-field-offset*          (+ l (* *cpio-newc-field-width* 
(1- i))))
+  (setq *cpio-newc-gid-field-offset*         (+ l (* *cpio-newc-field-width* 
(1- i))))
   (setq i (1+ i))
   (defconst *cpio-newc-nlink-field-offset*    (+ l (* *cpio-newc-field-width* 
i)))
-  (setq *cpio-newc-nlink-field-offset*        (+ l (* *cpio-newc-field-width* 
(1- i))))
+  (setq *cpio-newc-nlink-field-offset*       (+ l (* *cpio-newc-field-width* 
(1- i))))
   (setq i (1+ i))
   (defconst *cpio-newc-mtime-field-offset*    (+ l (* *cpio-newc-field-width* 
i)))
-  (setq *cpio-newc-mtime-field-offset*        (+ l (* *cpio-newc-field-width* 
(1- i))))
+  (setq *cpio-newc-mtime-field-offset*       (+ l (* *cpio-newc-field-width* 
(1- i))))
   (setq i (1+ i))
   (defconst *cpio-newc-filesize-field-offset* (+ l (* *cpio-newc-field-width* 
i)))
   (setq *cpio-newc-filesize-field-offset*     (+ l (* *cpio-newc-field-width* 
(1- i))))
@@ -311,10 +311,10 @@ in a newc cpio archive.")
   (setq *cpio-newc-namesize-field-offset*     (+ l (* *cpio-newc-field-width* 
(1- i))))
   (setq i (1+ i))
   (defconst *cpio-newc-chksum-field-offset*   (+ l (* *cpio-newc-field-width* 
i)))
-  (setq *cpio-newc-chksum-field-offset*       (+ l (* *cpio-newc-field-width* 
(1- i))))
+  (setq *cpio-newc-chksum-field-offset*              (+ l (* 
*cpio-newc-field-width* (1- i))))
   (setq i (1+ i))
   (defconst *cpio-newc-name-field-offset*     (+ l (* *cpio-newc-field-width* 
i)))
-  (setq *cpio-newc-name-field-offset*         (+ l (* *cpio-newc-field-width* 
(1- i)))))
+  (setq *cpio-newc-name-field-offset*        (+ l (* *cpio-newc-field-width* 
(1- i)))))
 
 (defconst *cpio-newc-trailer* 
"07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000B00000000TRAILER!!!\0\0\0\0"
   "The TRAILER string for a newc archive.")
@@ -324,15 +324,15 @@ in a newc cpio archive.")
 Taken from cpio-2.12/src/global.c."
   :type 'integer
   :group 'cpio)
-
-;; 
+
+;;
 ;; Library
-;; 
+;;
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; 
+;;
 ;; Functions for working with a cpio newc header
-;; 
+;;
 
 (defun cpio-newc-header-at-point (&optional where)
   "Return the header string at or following point WHERE.
@@ -353,13 +353,13 @@ CAVEATS:
             (forward-char (length *cpio-newc-magic-re*))
             (while (and (re-search-backward *cpio-newc-magic-re* (point-min) t)
                         (not (setq found (looking-at *cpio-newc-header-re*)))))
-            (if found 
+            (if found
                 (match-string-no-properties 0)))))))
 
 ;;;;;;;;;;;;;;;;
-;; 
+;;
 ;; Parsing a header
-;; 
+;;
 
 (defun cpio-newc-parse-header (header-string)
   "Return the internal entry header structure encoded in HEADER-STRING.
@@ -396,7 +396,7 @@ This function does NOT get the contents."
 
                    (cpio-newc-parse-chksum   header-string)
                    (cpio-newc-parse-name     header-string namesize))))
-      ;; (cpio-newc-header-size    header-string namesize))))
+      ;; (cpio-newc-header-size           header-string namesize))))
     (if (cpio-entry-name result)
        result
       nil)))
@@ -408,7 +408,7 @@ This function does NOT get the contents."
        ;; The namesize in the header includes the terminating NULL at the end 
of the name.
        (local-namesize (1- namesize))
        (total -1))
-    (if (= 0 (mod (setq total (+ 1 *cpio-newc-name-field-offset* 
local-namesize)) 
+    (if (= 0 (mod (setq total (+ 1 *cpio-newc-name-field-offset* 
local-namesize))
                  *cpio-newc-padding-modulus*))
        (setq total (1+ total)))
     (cg-round-up total *cpio-newc-padding-modulus*)))
@@ -534,9 +534,9 @@ After all that's where the contents are, not in the header."
                                    (+ where namesize filesize))))
 
 ;;;;;;;;;;;;;;;;
-;; 
+;;
 ;; Header construction
-;; 
+;;
 
 (defun cpio-newc-make-header-string (attrs &optional contents)
   "Make a NEWC style padded cpio header for the given ATTRibuteS.
@@ -544,20 +544,20 @@ This function does NOT include the contents."
   (let ((fname "cpio-newc-make-header-string")
        (name (cpio-entry-name attrs))
        (header-string))
-    (setq header-string (concat  (cpio-newc-make-magic    attrs)
-                                (cpio-newc-make-ino      attrs)
-                                (cpio-newc-make-mode     attrs)
-                                (cpio-newc-make-uid      attrs)
-                                (cpio-newc-make-gid      attrs)
-                                (cpio-newc-make-nlink    attrs)
-                                (cpio-newc-make-mtime    attrs)
+    (setq header-string (concat         (cpio-newc-make-magic    attrs)
+                                (cpio-newc-make-ino      attrs)
+                                (cpio-newc-make-mode     attrs)
+                                (cpio-newc-make-uid      attrs)
+                                (cpio-newc-make-gid      attrs)
+                                (cpio-newc-make-nlink    attrs)
+                                (cpio-newc-make-mtime    attrs)
                                 (cpio-newc-make-filesize attrs)
                                 (cpio-newc-make-dev-maj  attrs)
                                 (cpio-newc-make-dev-min  attrs)
                                 (cpio-newc-make-rdev-maj attrs)
                                 (cpio-newc-make-rdev-min attrs)
                                 (format "%08X" (1+ (length name)))
-                                (cpio-newc-make-chksum   attrs)
+                                (cpio-newc-make-chksum   attrs)
                                 name
                                 "\0"))
     (setq header-string (cg-pad-right header-string (cg-round-up (length 
header-string) *cpio-newc-padding-modulus*) "\0"))
@@ -652,9 +652,9 @@ This function does NOT include the contents."
 ;; Filename is not one of ATTRS. ∴ It doesn't get a constructor here.
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; 
+;;
 ;; Functions for whole entries
-;; 
+;;
 (defun cpio-newc-parse-header-at-point ()
   "Parse the newc cpio header that begins at point.
 If there is no header there, then signal an error."
@@ -727,7 +727,7 @@ CAVEAT: This respects neither narrowing nor the point."
            (t t)))
     (nreverse catalog)))
     ;; catalog))
-    
+
 
 (defun cpio-newc-start-of-trailer ()
   "Return the character position of the (ostensible) start of the trailer
@@ -794,10 +794,10 @@ once the TRAILER is written and padded."
     ;; (error "%s() is not yet implemented" fname)
     0
     ))
-
-;; 
+
+;;
 ;; Test and other development assistance.
-;; 
+;;
 
 (eval-when-compile
   (require 'cl-lib))                           ;For (mapcar*)
@@ -913,7 +913,7 @@ what the proper way to do it is."
                                "  %5d\t"          ;Name length
                                "  %5d\t"          ;SOH
                                "  %5d\t"          ;SOFN
-                               
+
                                "  %5d\t"          ;EOH
                                "  %5d\t"          ;EON
                                "  %5d\t"          ;hpad
@@ -938,9 +938,9 @@ what the proper way to do it is."
     (with-current-buffer lbuf
       (goto-char (point-max))
       (insert (concat "Notes: 1. Name length includes the terminating NULL.\n"
-                     "       2. SOH is calculated via a search for the magic 
number.\n"
-                     "       3. EOH and SON are equal; each calculation is via 
the point.\n"
-                     "       4. hpad and cpad are each calculated by 
motion.\n"))
+                     "       2. SOH is calculated via a search for the magic 
number.\n"
+                     "       3. EOH and SON are equal; each calculation is via 
the point.\n"
+                     "       4. hpad and cpad are each calculated by 
motion.\n"))
       (goto-char (point-min)))
     (pop-to-buffer lbuf)))
 
@@ -977,13 +977,13 @@ what the proper way to do it is."
                    (make-string 8 ?=)  ;File size
 
                    (make-string 8 ?=)  ;SOC
-                   (make-string 8 ?=)  ;EOC
-                   (make-string 8 ?=)  ;cpad
-                   (make-string 8 ?=)  ;????
+                   (make-string 8 ?=)  ;EOC
+                   (make-string 8 ?=)  ;cpad
+                   (make-string 8 ?=)  ;????
                    "\n")))
          (t t))))
 
 
-
+
 (provide 'cpio-newc)
 ;;; cpio-newc.el ends here.
diff --git a/cpio-odc.el b/cpio-odc.el
index b9485d2..6243c82 100644
--- a/cpio-odc.el
+++ b/cpio-odc.el
@@ -1,28 +1,28 @@
 ;;; cpio-odc.el --- handle old portable cpio entry header format. -*- coding: 
utf-8 -*-
 
 ;; COPYRIGHT
-;; 
+;;
 ;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
-;; 
+;;
 ;; This program is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
-;; 
+;;
 ;; This program is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the
 ;; GNU General Public License for more details.
-;; 
+;;
 ;; You should have received a copy of the GNU General Public License
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
-;; 
+;;
 
 ;; Author: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Maintainer: Douglas Lewan <d.lewan2000@gmail.com>
 ;; Created: 2015 Jan 03
-;; Version: 0.16β
+;; Version: 0.17
 ;; Keywords: files
 
 ;;; Commentary:
@@ -31,10 +31,10 @@
 
 
 ;;; Code:
-
+
 ;;
 ;; Dependencies
-;; 
+;;
 
 ;; (load-file (concat default-directory "cpio-generic.el"))
 
@@ -69,10 +69,10 @@
 ;; EO things for the byte compiler.
 ;;;;;;;;;;;;;;;;
 
-
-;; 
+
+;;
 ;; Vars
-;; 
+;;
 
 (defconst *cpio-odc-header-length* (length 
"0707070000000000000000000000000000000000010000000000000000000001300000000000")
   "The length of an odc header.")
@@ -99,45 +99,45 @@
   "The width of all of the fields in a odc header.")
 (setq *cpio-odc-field-width* 6)
 
-(defconst *cpio-odc-ino-re*      (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*)
+(defconst *cpio-odc-ino-re*     (format "[0-7]\\{%d\\}" *cpio-odc-field-width*)
   "RE to match the c_ino field in a odc header.")
-(setq *cpio-odc-ino-re*          (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*))
+(setq *cpio-odc-ino-re*                 (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*))
 
-(defconst *cpio-odc-dev-re*      (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*)
+(defconst *cpio-odc-dev-re*     (format "[0-7]\\{%d\\}" *cpio-odc-field-width*)
   "RE to match the c_dev field in a odc header.")
-(setq *cpio-odc-dev-re*          (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*))
+(setq *cpio-odc-dev-re*                 (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*))
 
-(defconst *cpio-odc-mode-re*     (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*)
+(defconst *cpio-odc-mode-re*    (format "[0-7]\\{%d\\}" *cpio-odc-field-width*)
   "RE to match the c_mode field in a odc header.")
-(setq *cpio-odc-mode-re*         (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*))
+(setq *cpio-odc-mode-re*        (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*))
 
-(defconst *cpio-odc-uid-re*      (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*)
+(defconst *cpio-odc-uid-re*     (format "[0-7]\\{%d\\}" *cpio-odc-field-width*)
   "RE to match the c_uid field in a odc header.")
-(setq *cpio-odc-uid-re*          (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*))
+(setq *cpio-odc-uid-re*                 (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*))
 
-(defconst *cpio-odc-gid-re*      (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*)
+(defconst *cpio-odc-gid-re*     (format "[0-7]\\{%d\\}" *cpio-odc-field-width*)
   "RE to match the c_gid field in a odc header.")
-(setq *cpio-odc-gid-re*          (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*))
+(setq *cpio-odc-gid-re*                 (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*))
 
-(defconst *cpio-odc-nlink-re*    (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*)
+(defconst *cpio-odc-nlink-re*   (format "[0-7]\\{%d\\}" *cpio-odc-field-width*)
   "RE to match the c_nlink field in a odc header.")
-(setq *cpio-odc-nlink-re*        (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*))
+(setq *cpio-odc-nlink-re*       (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*))
 
-(defconst *cpio-odc-rdev-re*     (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*)
+(defconst *cpio-odc-rdev-re*    (format "[0-7]\\{%d\\}" *cpio-odc-field-width*)
   "RE to match the c_rdev field in a odc header.")
-(setq *cpio-odc-rdev-re*         (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*))
+(setq *cpio-odc-rdev-re*        (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*))
 
-(defconst *cpio-odc-mtime-re*            "[0-7]\\{11\\}"
+(defconst *cpio-odc-mtime-re*           "[0-7]\\{11\\}"
   "RE to match the c_mtime field in a odc header.")
-(setq *cpio-odc-mtime-re*                "[0-7]\\{11\\}")
+(setq *cpio-odc-mtime-re*               "[0-7]\\{11\\}")
 
 (defconst *cpio-odc-namesize-re* (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*)
   "RE to match the c_namesize field in a odc header.")
-(setq *cpio-odc-namesize-re*     (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*))
+(setq *cpio-odc-namesize-re*    (format "[0-7]\\{%d\\}" 
*cpio-odc-field-width*))
 
-(defconst *cpio-odc-filesize-re*         "[0-7]\\{11\\}"
+(defconst *cpio-odc-filesize-re*        "[0-7]\\{11\\}"
   "RE to match the c_filesize field in a odc header.")
-(setq *cpio-odc-filesize-re*             "[0-7]\\{11\\}")
+(setq *cpio-odc-filesize-re*            "[0-7]\\{11\\}")
 
 (defconst *cpio-odc-filename-re* "[[:print:]]+"
   "RE to match the c_filename field in a odc header.")
@@ -145,17 +145,17 @@
 
 (defconst *cpio-odc-header-re* ()
   "RE to match odc header format cpio archives.")
-(setq *cpio-odc-header-re* (concat "\\(" *cpio-odc-magic-re*    "\\)"
-                                  "\\(" *cpio-odc-dev-re*      "\\)"
-                                  "\\(" *cpio-odc-ino-re*      "\\)"
-                                  "\\(" *cpio-odc-mode-re*     "\\)"
+(setq *cpio-odc-header-re* (concat "\\(" *cpio-odc-magic-re*   "\\)"
+                                  "\\(" *cpio-odc-dev-re*      "\\)"
+                                  "\\(" *cpio-odc-ino-re*      "\\)"
+                                  "\\(" *cpio-odc-mode-re*     "\\)"
 
-                                  "\\(" *cpio-odc-uid-re*      "\\)"
-                                  "\\(" *cpio-odc-gid-re*      "\\)"
-                                  "\\(" *cpio-odc-nlink-re*    "\\)"
-                                  "\\(" *cpio-odc-rdev-re*     "\\)"
+                                  "\\(" *cpio-odc-uid-re*      "\\)"
+                                  "\\(" *cpio-odc-gid-re*      "\\)"
+                                  "\\(" *cpio-odc-nlink-re*    "\\)"
+                                  "\\(" *cpio-odc-rdev-re*     "\\)"
 
-                                  "\\(" *cpio-odc-mtime-re*    "\\)"
+                                  "\\(" *cpio-odc-mtime-re*    "\\)"
                                   "\\(" *cpio-odc-namesize-re* "\\)"
                                   "\\(" *cpio-odc-filesize-re* "\\)"
                                   "\\(" *cpio-odc-filename-re* "\\)"
@@ -209,9 +209,9 @@
   (defconst *cpio-odc-filename-re-idx* 0
     "Index of the sub RE from *cpio-odc-header-re* to parse the filename.")
   (setq *cpio-odc-filename-re-idx* (setq i (1+ i))))
-;; 
+;;
 ;; EO odc header variables.
-;; 
+;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 
@@ -243,29 +243,29 @@ in a odc cpio archive.")
   (defconst *cpio-odc-magic-field-offset* offset-so-far)
   (setq *cpio-odc-magic-field-offset* offset-so-far)
 
-  (defconst *cpio-odc-dev-field-offset*      ())
-  (setq *cpio-odc-dev-field-offset*          (setq offset-so-far (+ 
offset-so-far (length *cpio-odc-magic*))))
+  (defconst *cpio-odc-dev-field-offset*             ())
+  (setq *cpio-odc-dev-field-offset*         (setq offset-so-far (+ 
offset-so-far (length *cpio-odc-magic*))))
 
-  (defconst *cpio-odc-ino-field-offset*      ())
-  (setq *cpio-odc-ino-field-offset*          (setq offset-so-far (+ 
offset-so-far *cpio-odc-field-width*)))
+  (defconst *cpio-odc-ino-field-offset*             ())
+  (setq *cpio-odc-ino-field-offset*         (setq offset-so-far (+ 
offset-so-far *cpio-odc-field-width*)))
 
   (defconst *cpio-odc-mode-field-offset*     ())
-  (setq *cpio-odc-mode-field-offset*         (setq offset-so-far (+ 
offset-so-far *cpio-odc-field-width*)))
+  (setq *cpio-odc-mode-field-offset*        (setq offset-so-far (+ 
offset-so-far *cpio-odc-field-width*)))
 
-  (defconst *cpio-odc-uid-field-offset*      ())
-  (setq *cpio-odc-uid-field-offset*          (setq offset-so-far (+ 
offset-so-far *cpio-odc-field-width*)))
+  (defconst *cpio-odc-uid-field-offset*             ())
+  (setq *cpio-odc-uid-field-offset*         (setq offset-so-far (+ 
offset-so-far *cpio-odc-field-width*)))
 
-  (defconst *cpio-odc-gid-field-offset*      ())
-  (setq *cpio-odc-gid-field-offset*          (setq offset-so-far (+ 
offset-so-far *cpio-odc-field-width*)))
+  (defconst *cpio-odc-gid-field-offset*             ())
+  (setq *cpio-odc-gid-field-offset*         (setq offset-so-far (+ 
offset-so-far *cpio-odc-field-width*)))
 
   (defconst *cpio-odc-nlink-field-offset*    ())
-  (setq *cpio-odc-nlink-field-offset*        (setq offset-so-far (+ 
offset-so-far *cpio-odc-field-width*)))
+  (setq *cpio-odc-nlink-field-offset*       (setq offset-so-far (+ 
offset-so-far *cpio-odc-field-width*)))
 
   (defconst *cpio-odc-rdev-field-offset*     ())
-  (setq *cpio-odc-rdev-field-offset*         (setq offset-so-far (+ 
offset-so-far *cpio-odc-field-width*)))
+  (setq *cpio-odc-rdev-field-offset*        (setq offset-so-far (+ 
offset-so-far *cpio-odc-field-width*)))
 
   (defconst *cpio-odc-mtime-field-offset*    ())
-  (setq *cpio-odc-mtime-field-offset*        (setq offset-so-far (+ 
offset-so-far *cpio-odc-field-width*)))
+  (setq *cpio-odc-mtime-field-offset*       (setq offset-so-far (+ 
offset-so-far *cpio-odc-field-width*)))
 
   (defconst *cpio-odc-namesize-field-offset* ())
   (setq *cpio-odc-namesize-field-offset*     (setq offset-so-far (+ 
offset-so-far 11)))
@@ -274,7 +274,7 @@ in a odc cpio archive.")
   (setq *cpio-odc-filesize-field-offset*     (setq offset-so-far (+ 
offset-so-far *cpio-odc-field-width*)))
 
   (defconst *cpio-odc-name-field-offset*     ())
-  (setq *cpio-odc-name-field-offset*         (setq offset-so-far (+ 
offset-so-far 11))))
+  (setq *cpio-odc-name-field-offset*        (setq offset-so-far (+ 
offset-so-far 11))))
 
 (defconst *cpio-odc-trailer* 
"0707070000000000000000000000000000000000010000000000000000000001300000000000TRAILER!!!\0"
   "The TRAILER string for a odc archive.")
@@ -286,15 +286,15 @@ in a odc cpio archive.")
 Taken from cpio-2.12/src/global.c."
   :type 'integer
   :group 'cpio)
-
-;; 
+
+;;
 ;; Library
-;; 
+;;
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; 
+;;
 ;; Functions for working with a cpio odc header
-;; 
+;;
 
 (defun cpio-odc-header-at-point (&optional where)
   "Return the header string at or following point WHERE.
@@ -315,13 +315,13 @@ CAVEATS:
             (forward-char (length *cpio-odc-magic-re*))
             (while (and (re-search-backward *cpio-odc-magic-re* (point-min) t)
                         (not (setq found (looking-at *cpio-odc-header-re*)))))
-            (if found 
+            (if found
                 (match-string-no-properties 0)))))))
 
 ;;;;;;;;;;;;;;;;
-;; 
+;;
 ;; Parsing a header
-;; 
+;;
 
 (defun cpio-odc-parse-header (header-string)
   "Return the internal entry header structure encoded in HEADER-STR.
@@ -341,15 +341,15 @@ This function does NOT get the contents."
     (save-match-data
       (string-match *cpio-odc-header-re* header-string)
       (setq result
-           (vector 
-                   (cpio-odc-parse-ino      header-string)
+           (vector
+                   (cpio-odc-parse-ino      header-string)
                    (cpio-odc-parse-mode     header-string)
-                   (cpio-odc-parse-uid      header-string)
-                   (cpio-odc-parse-gid      header-string)
+                   (cpio-odc-parse-uid      header-string)
+                   (cpio-odc-parse-gid      header-string)
                    (cpio-odc-parse-nlink    header-string)
                    (cpio-odc-parse-mtime    header-string)
                    (setq filesize (cpio-odc-parse-filesize header-string))
-                   (cpio-odc-parse-dev      header-string)
+                   (cpio-odc-parse-dev      header-string)
                    0                   ;dev-min
                    (cpio-odc-parse-rdev     header-string)
                    0                   ;rdev-min
@@ -465,9 +465,9 @@ After all that's where the contents are, not in the header."
                                    (+ where namesize filesize))))
 
 ;;;;;;;;;;;;;;;;
-;; 
+;;
 ;; Header construction
-;; 
+;;
 
 (defun cpio-odc-make-header-string (attrs &optional contents)
   "Make a ODC style padded cpio header for the given ATTRibuteS.
@@ -475,15 +475,15 @@ This function does NOT include the contents."
   (let ((fname "cpio-odc-make-header-string")
        (name (cpio-entry-name attrs))
        (header-string))
-    (setq header-string (concat  (cpio-odc-make-magic    attrs)
-                                (cpio-odc-make-dev      attrs)
-                                (cpio-odc-make-ino      attrs)
-                                (cpio-odc-make-mode     attrs)
-                                (cpio-odc-make-uid      attrs)
-                                (cpio-odc-make-gid      attrs)
-                                (cpio-odc-make-nlink    attrs)
-                                (cpio-odc-make-rdev     attrs)
-                                (cpio-odc-make-mtime    attrs)
+    (setq header-string (concat         (cpio-odc-make-magic    attrs)
+                                (cpio-odc-make-dev      attrs)
+                                (cpio-odc-make-ino      attrs)
+                                (cpio-odc-make-mode     attrs)
+                                (cpio-odc-make-uid      attrs)
+                                (cpio-odc-make-gid      attrs)
+                                (cpio-odc-make-nlink    attrs)
+                                (cpio-odc-make-rdev     attrs)
+                                (cpio-odc-make-mtime    attrs)
                                 (format "%06o" (1+ (length name)))
                                 (cpio-odc-make-filesize attrs)
                                 name
@@ -553,9 +553,9 @@ This function does NOT include the contents."
 ;; Filename is not one of ATTRS. ∴ It doesn't get a constructor here.
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; 
+;;
 ;; Functions for whole entries
-;; 
+;;
 (defun cpio-odc-parse-header-at-point ()
   "Parse the odc cpio header that begins at point.
 If there is no header there, then signal an error."
@@ -687,11 +687,11 @@ once the TRAILER is written and padded."
     (with-writable-buffer
      (delete-region (point) (point-max)))))
 
-
-;; 
+
+;;
 ;; Commands
-;; 
+;;
+
 
-
 (provide 'cpio-odc)
 ;;; cpio-odc.el ends here.
diff --git a/cpio-ustar.el b/cpio-ustar.el
index cef9ec9..3e89c98 100644
--- a/cpio-ustar.el
+++ b/cpio-ustar.el
@@ -1,23 +1,23 @@
 ;; cpio-ustar.el --- Let tar-mode handle tar archives. -*- coding: utf-8 -*-
 
 ;; COPYRIGHT
-;; 
+;;
 ;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
-;; 
+;;
 ;; This program is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
-;; 
+;;
 ;; This program is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the
 ;; GNU General Public License for more details.
-;; 
+;;
 ;; You should have received a copy of the GNU General Public License
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
-;; 
+;;
 
 ;;; Tar archives are already handled by tar-mode.
 



reply via email to

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