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

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

[elpa] externals/cpio-mode 90f1236 61/61: New version with copyright ass


From: Stefan Monnier
Subject: [elpa] externals/cpio-mode 90f1236 61/61: New version with copyright assigned to the FSF.
Date: Fri, 11 Jan 2019 15:25:39 -0500 (EST)

branch: externals/cpio-mode
commit 90f1236afbe765171a9f31ecc759e592635e24f9
Author: Douglas Lewan <address@hidden>
Commit: Douglas Lewan <address@hidden>

    New version with copyright assigned to the FSF.
---
 DESIGN                         |   9 +-
 Makefile.in                    | 417 ++++++++++++++++++++++++-----------------
 NEWS                           |  12 +-
 QUESTIONS                      |   5 +-
 README                         |  21 ++-
 THANKS                         |   2 +-
 cab-test.el                    |  15 +-
 configure.ac                   |   6 +-
 cpio-affiliated-buffers.el     |  25 +--
 cpio-bin.el                    |  32 ++--
 cpio-crc.el                    |  16 +-
 cpio-dired-crc-test.el         |  20 +-
 cpio-dired-odc-test.el         |  20 +-
 cpio-dired-test.el             |  20 +-
 cpio-dired.el                  | 182 ++++++++++++------
 cpio-entry-contents-mode.el    |  35 ++--
 cpio-entry-header.el           |   6 +-
 cpio-generic-tests.el          |   6 +-
 cpio-generic.el                |  10 +-
 cpio-hpbin.el                  |   6 +-
 cpio-hpodc.el                  |   6 +-
 cpio-modes-test.el             |   6 +-
 cpio-modes.el                  |  56 +++++-
 cpio-newc-tests.el             | Bin 3381 -> 3835 bytes
 cpio-newc.el                   |  38 ++--
 cpio-odc.el                    |  35 ++--
 cpio-tar.el                    |   2 +-
 cpio-tests.el                  |   6 +-
 cpio-ustar.el                  |   2 +-
 cpio-wanted.el                 |   6 +-
 stamp-h.in                     |   1 -
 test-generic.el                | 173 ++++++++++++++++-
 test_data/alphabet/Makefile.in |  99 +++++-----
 ttt.el                         |   6 +-
 34 files changed, 845 insertions(+), 456 deletions(-)

diff --git a/DESIGN b/DESIGN
index 6019515..63a2cd9 100644
--- a/DESIGN
+++ b/DESIGN
@@ -1,7 +1,8 @@
-#      $Id: DESIGN,v 1.7 2019/01/03 21:04:20 doug Exp $        
+#      $Id: DESIGN,v 1.9 2019/01/07 07:44:33 doug Exp $        
 
 # 
-# Copyright © 2015, 2017, 2018, 2019 Douglas Lewan, address@hidden
+# Copyright © 2019 Free Software Foundation, Inc.
+# 
 # All rights reserved.
 # 
 # This program is free software: you can redistribute it and/or modify
@@ -40,8 +41,8 @@ there are the following entry header formats:
 • hpbin,       the obsolete binary format used by HPUX's cpio.
 • hpodc,       the portable format used by HPUX's cpio.
 
-The file cpio.el is the door into the package.
-cpio.el controls loading other files as needed and, as of yet,
+The file cpio-mode.el is the door into the package.
+cpio-mode.el controls loading other files as needed and, as of yet,
 implements the high-level presentation and user-interface functions.
 
 Believing in portability, the formats newc, odc and crc will be first
diff --git a/Makefile.in b/Makefile.in
index 1d15993..6e2d796 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,7 +1,7 @@
 # -*- mode: makefile; coding: utf-8 -*-
-#      $Id: Makefile.in,v 1.4 2019/01/03 20:08:35 doug Exp $   
 
-# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Douglas Lewan, 
address@hidden
+# 
+# Copyright © 2019 Free Software Foundation, Inc.
 # All rights reserved.
 # 
 # This program is free software: you can redistribute it and/or modify
@@ -16,9 +16,10 @@
 # 
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# 
 
-PROJECT                =       @PACKAGE_NAME@
-PROJECT_VERSION        =       @PACKAGE_VERSION@
+PACKAGE                =       @PACKAGE_NAME@
+PACKAGE_VERSION        =       @PACKAGE_VERSION@
 
 ################################
 # 
@@ -26,67 +27,89 @@ PROJECT_VERSION     =       @PACKAGE_VERSION@
 # 
 CFILES         =       
 HFILES         =       
-OFILES         =       ${CFILES:.o=.c}
+OFILES         =       
 
 
 SHELLS         =       
-EL_FILES       =       
-SRC_FILES      =       Makefile.in
+CPIO_FILES     =       cpio-bin.el                     \
+                       cpio-crc.el                     \
+                       cpio-dired.el                   \
+                       cpio-entry-contents-mode.el     \
+                       cpio-entry-header.el            \
+                       cpio-hpbin.el                   \
+                       cpio-hpodc.el                   \
+                       cpio-mode.el                    \
+                       cpio-newc.el                    \
+                       cpio-odc.el                     \
+                       cpio-tar.el                     \
+                       cpio-ustar.el                   \
+                       cpio-wanted.el
+SUPPORT_FILES  =       cpio-affiliated-buffers.el      \
+                       cpio-generic.el                 \
+                       cpio-modes.el
+APP_FILES      =       ${CPIO_FILES} ${SUPPORT_FILES}
+
+ELC_FILES      =       ${APP_FILES:.el=.elc}
+
+TEST_FILES     =       cab-test.el                     \
+                       cpio-modes-test.el              \
+                       cpio-dired-bin-test.el          \
+                       cpio-dired-crc-test.el          \
+                       cpio-dired-odc-test.el          \
+                       cpio-dired-test.el              \
+                       cpio-modes-test.el              \
+                       test-generic.el
+
+SUPPORT_FILES  =       cpio-affiliated-buffers.el      \
+                       cpio-generic.el                 \
+                       cpio-modes.el
+
+
+EL_FILES       =       ${APP_FILES} ${TEST_FILES} ${SUPPORT_FILES}
+LIB_FILES      =
+DOC_FILES      =
+INFO_FILES     =
+
+SRC_FILES      =       configure       \
+                       configure.ac    \
+                       COPYING         \
+                       DESIGN          \
+                       install-sh      \
+                       Makefile.in     \
+                       NEWS            \
+                       QUESTIONS       \
+                       README          \
+                       stamp-h.in      \
+                       THANKS          \
+                       ${EL_FILES}
+
+subdirs                =       test_data
 
 ################################
 # 
 # Where things are
 # 
+
 prefix         =       @prefix@
-distdir                =       
${abs_srcdir}/${PACKAGE}-${PACKAGE_VERSION}/test_data/alphabet
+datarootdir    =       @datarootdir@
+srcdir         =       @srcdir@
+top_srcdir     =       @top_srcdir@
+srcdir         =       @srcdir@
+abs_srcdir     =       @abs_srcdir@
+abs_top_srcdir =       @abs_top_srcdir@
 
 # And where they go
 bindir         =       ${prefix}/bin
-docdir         =       ${prefix}/share/doc
-exec_prefix    =       ${prefix}
-execdir                =       ${exec_prefix}
-libdir         =       ${exec_prefix}/lib
-libexecdir     =       ${exec_prefix}/libexec
-sbindir                =       ${exec_prefix}/sbin
-
-datarootdir    =       ${prefix}/share
-datadir                =       ${datarootdir}
-infodir                =       ${datarootdir}/info
-sysconfdir     =       ${prefix}/etc
-sharedstatedir =       ${prefix}/com
-localstatdir   =       ${prefix}/var
-runstatedir    =       ${localstatdir}/run
-
-includedir     =       ${prefix}/include
-oldincludedir  =       /usr/include
+libdir         =       ${prefix}/lib
+lispdir                =       ${prefix}/share/emacs/lisp
+installdir     =       ${lispdir}/cpio-mode
 docdir         =       @docdir@
+dvidir         =       @infodir@
 infodir                =       @infodir@
-htmldir                =       ${docdir}
-dvidir         =       ${docdir}
-pdfdir         =       ${docdir}
-psdir          =       ${docdir}
-libdir         =       ${exec_prefix}/lib
-lispdir                =       
${prefix}/share/${PROJECT}/${PROJECT_VERSION}/lisp
-localedir      =       ${datarootdir}/locale
-mandir         =       ${datarootdir}/man
-man1dir                =       ${mandir}/man1
-man2dir                =       ${mandir}/man2
-man3dir                =       ${mandir}/man3
-man4dir                =       ${mandir}/man4
-man5dir                =       ${mandir}/man5
-man6dir                =       ${mandir}/man6
-man7dir                =       ${mandir}/man7
-manext         =       .1
-man1ext                =       .1
-man2ext                =       .2
-man3ext                =       .3
-man4ext                =       .4
-man5ext                =       .5
-man6ext                =       .6
-man7ext                =       .7
-srcdir         =       @srcdir@
-abs_srcdir     =       @abs_srcdir@
-top_srcdir     =       @top_srcdir@
+sharedir       =       ${prefix}/share/${PACKAGE}/${PACKAGE_VERSION}
+sharelibdir    =       ${sharedir}/lib
+sharelispdir   =       ${sharedir}/lisp
+distdir                =       ${abs_top_srcdir}/${PACKAGE}-${PACKAGE_VERSION}
 
 ################################
 # 
@@ -95,7 +118,7 @@ top_srcdir   =       @top_srcdir@
 TAR_OPTS       =       @tar_opts@
 TAR_SUFFIX     =       @tar_suffix@
 
-TARBALL                =       ${PROJECT}-${PROJECT_VERSION}-${shell date 
+%Y%m%d%H%M%S}.${TAR_SUFFIX}
+TARBALL                =       ${PACKAGE}-${PACKAGE_VERSION}-${shell date 
+%Y%m%d%H%M%S}.${TAR_SUFFIX}
 
 
 ################################
@@ -107,13 +130,17 @@ INSTALL   =       @INSTALL@
 CC     =       @CC@
 CFLAGS =       
 
-
 ################################
-#
-# Keys for building test data.
-# 
-LETTERS        =       a b c d e f g h i j k l m n o p q r s t u v w x y z
-
+# Taken from emacs' lisp/Makefile.in
+BYTE_COMPILE_EXTRA_FLAGS =
+BIG_STACK_DEPTH = 2200
+BIG_STACK_OPTS = --eval "(setq max-lisp-eval-depth $(BIG_STACK_DEPTH))"
+
+# Set load-prefer-newer for the benefit of the non-bootstrappers.
+BYTE_COMPILE_FLAGS = $(BIG_STACK_OPTS) \
+  --eval '(setq load-prefer-newer t)' $(BYTE_COMPILE_EXTRA_FLAGS)
+# EO stuff from emacs' lisp/Makefile.in
+################################
 
 ################################################################
 
@@ -122,81 +149,73 @@ LETTERS   =       a b c d e f g h i j k l m n o p q r s t 
u v w x y z
 # Building
 # 
 
-.PHONY: default help all alphabet nonsense check_gnu
+.el.elc:       Makefile
+       emacs -Q -batch ${BYTE_COMPILE_FLAGS}                                   
        \
+               -l bytecomp -f byte-compile-refresh-preloaded                   
        \
+               --eval="(setq load-path (add-to-list 'load-path 
"'"${top_srcdir}"'"))"  \
+               -l cpio-mode.el -f batch-byte-compile ${<} ;
 
 default:       check_gnu
-       @echo "This Makefile has no defaults."
-       @echo "Please type one of the archive format targets:"
-       @echo "    ${MAKE} all"
-       @echo "    ${MAKE} bin"
-       @echo "    ${MAKE} crc"
-       @echo "    ${MAKE} hpbin"
-       @echo "    ${MAKE} hpodc"
-       @echo "    ${MAKE} newc"
-       @echo "    ${MAKE} odc"
-       @echo "    ${MAKE} tar"
-       @echo "    ${MAKE} ustar"
-       @echo "instead."
-
-help:  check_gnu       default
-
-nonsense:
-       @echo "The target address@hidden does not make sense in this directory."
+       @echo 
+       @echo "There is no default action in this Makefile."
+       ${MAKE} help
+
+help:  check_gnu
+       @echo "Here are the most important targets in this Makefile:"
+       @echo "    make elc"
+       @echo "    make install"
+       @echo "    make uninstall"
+       @echo "    make tags"
+       @echo "    make data"
+       @echo "    make clean"
+       @echo "Here is a list of all targets:"
+       @echo "    make check_cab -- run automated tests of 
cpio-affilitated-buffers.el."
+       @echo "    make check_copyrights -- scan files for copyrights."
+       @echo "    make check_modes -- run automated tests agains 
cpio-modes.el."
+       @echo "    make clean -- remove byte compiled files."
+       @echo "    make data -- create test data for all cpio archive formats."
+       @echo "    make dist -- build a distributable tarball."
+       @echo "    make distclean -- clean, leaving only distribution files."
+       @echo "    make elc -- byte compile cpio-mode."
+       @echo "    make help -- present this help."
+       @echo "    make install -- install a byte compiled instance of 
cpio-mode."
+       @echo "    make maintainer-clean -- clean and remove crufty files."
+       @echo "    make mostlyclean -- like distclean."
+       @echo "    make simple_install -- install the code for cpio-mode."
+       @echo "    make tags -- run tags on the cpio-mode source."
+       @echo "    make uninstall -- uninstall cpio-mode."
+       @echo "    make update_versions -- update the Version: fields in 
cpio-mode code."
+       @echo "    make version -- print the version of cpio-mode."
+       @echo "The following targets are incomplete, incorrect or just not 
implemented:"
+       @echo "    X make check -- run automated tests."
+       @echo "    X make check_bin -- run automated tests of binary format 
handling."
+       @echo "    X make check_crc -- run automated tests of crc format 
handling."
+       @echo "    X make check_newc -- run automated tests of newc format 
handling."
+       @echo "    X make check_odc -- run automated tests of odc format 
handling."
+
+version:
+       @echo ${PACKAGE} ${PACKAGE_VERSION}
+
+all:   default
+
+.PHONY:        check_gnu elc update_versions data
+
+elc:   ${ELC_FILES}
 
 check_gnu:
        @${MAKE} --version >/dev/null 2>&1 || ( echo "This makefile requires 
GNU Make." && exit 1 )
 
-.PHONY: alphabet ${LETTERS}
-
-alphabet: check_gnu ${LETTERS}
-
-small_alphabet: check_gnu a b c
-
-${LETTERS}:
-       @for i in address@hidden address@hidden@} address@hidden@address@hidden 
address@hidden@address@hidden@} address@hidden@address@hidden@address@hidden ; 
do       \
-               >  $${i} ;                                                      
        \
-               echo       >> $${i} ;                                           
        \
-               echo $${i} >> $${i} ;                                           
        \
-               echo       >> $${i} ;                                           
        \
+update_versions:       configure
+       @for f in ${EL_FILES} ; do                                              
                                        \
+               sed -n -E -e 's/^;; Version: (.*)$$/;; Version: 
'${PACKAGE_VERSION}'/' -ep < $${f} >$${f}.tmp ;         \
+               mv -f $${f}.tmp $${f} ;                                         
                                        \
        done
-       @if ! [ -d address@hidden@address@hidden@address@hidden ] ; then        
                                \
-               mkdir address@hidden@address@hidden@address@hidden ;            
                                \
-       fi
 
-################################
-#
-# Cpio formats
-#
-.PHONY: all bin crc hpbin hpodc newc odc tar ustar
-all: bin crc hpbin hpodc newc odc tar ustar links
-# Yes, these regular expressions are a little brittle,
-# but they work in this directory.
-archives:
-       ls -1 -d ? ?? ??? ???? ????? ?????.d | grep -v CVS | cpio -o -H 
${archive_format} > alphabet.${archive_format}.cpio
-       ls -1 -d a aa aaa aaaa aaaaa aaaaa.d b bb bbb bbbb bbbbb bbbbb.d c cc 
ccc cccc ccccc ccccc.d | cpio -o -H ${archive_format} > 
alphabet_small.${archive_format}.cpio
-       ls -1 -d a aa aaaaa.d b bb | cpio -o -H ${archive_format} > 
alphabet_tiny.${archive_format}.cpio
-       ls -1 -d a aaaaa.d | cpio -o -H ${archive_format} > 
alphabet_mini.${archive_format}.cpio
-
-bin:   alphabet
-       ${MAKE} address@hidden archives
-crc:   alphabet
-       ${MAKE} address@hidden archives
-hpbin: alphabet
-       ${MAKE} address@hidden archives
-hpodc: alphabet
-       ${MAKE} address@hidden archives
-newc:  alphabet 
-       ${MAKE} address@hidden archives
-odc:   alphabet
-       ${MAKE} address@hidden archives
-tar:   alphabet
-       ${MAKE} address@hidden archives
-ustar: alphabet
-       ${MAKE} address@hidden archives
-
-links: # bin_links crc_links hpbin_links hpodc_links newc_links tar_links 
ustar_links
-       for i in *.cpio ; do                            \
-               ln -s $${i} `basename $${i} .cpio` ;    \
+data:
+       for d in ${subdirs} ; do        \
+               cd $${d} ;              \
+               ${MAKE} address@hidden ;                \
+               cd .. ;                 \
        done
 
 ################################
@@ -204,9 +223,35 @@ links:     # bin_links crc_links hpbin_links hpodc_links 
newc_links tar_links ustar_
 # Testing
 # 
 
-check: nonsense
-
-installcheck: nonsense
+.PHONY: check check_cab check_bin check_crc check_newc check_odc installcheck
+check: check_cab check_modes # check_bin check_crc check_newc check_odc
+
+file_check:
+       @echo "################################################################"
+       @echo "# "
+       @echo "# Running tests in ${check_file}."
+       @echo "# "
+       emacs -batch -Q -eval "(setq load-path (add-to-list 'load-path 
\"${abs_srcdir}\"))" -l ert -l ${check_file} -f ert-run-tests-batch-and-exit 
2>&1 | grep -v -e 'Modification-flag cleared' -e 'Wrote /'
+       @echo "# "
+       @echo "# EO tests in ${check_file}."
+       @echo "# "
+       @echo "################################################################"
+       @echo ; echo ; echo 
+
+check_cab:
+       make check_file=cab-test.el file_check
+check_modes:
+       make check_file=cpio-modes-test.el file_check
+check_bin:
+       make check_file=cpio-dired-bin-test.el file_check
+check_crc:
+       make check_file=cpio-dired-crc-test.el file_check
+check_newc:
+       make check_file=cpio-dired-test.el file_check
+check_odc:
+       make check_file=cpio-dired-odc-test.el file_check
+
+installcheck: check
 
 .PHONY: check_copyrights
 check_copyrights: ${SRC_FILES}
@@ -220,101 +265,129 @@ check_copyrights: ${SRC_FILES}
                fi ;                                                            
\
        done ;                                                                  
\
        exit ${EXIT}
+       pd=`pwd` ;                                                              
\
+       for d in ${subdirs} ; do                                                
\
+               cd $${d} ;                                                      
\
+               make check_copyrights ;                                         
\
+               cd $${pd} ;                                                     
\
+       done
 
 ################################
 # 
 # Installation
 # 
 
-install:       nonsense
+.PHONY:        install simple_install 
+install:       check_gnu uninstall ${ELC_FILES} installdirs
+       ${INSTALL} ${ELC_FILES} ${installdir}
+
+simple_install: check_gnu uninstall installdirs
+       ${INSTALL} ${APP_FILES} ${installdir}
 
-installdirs:   nonsense
+# ${ELC_FILES}:        elc
 
-uninstall:     nonsense
+installdirs:   check_gnu
+       test -d ${installdir} || mkdir -p ${installdir}
 
-install-html:  nonsense
-install-dvi:   nonsense
-install-pdf:   nonsense
-install-ps:    nonsense
-install-strip: nonsense
+uninstall:
+       rm -rf ${installdir}/*.el ${installdir}/*.elc
 
+install-html:
+install-dvi:
+install-pdf:
+install-ps:
+install-strip:
+
+configure-default:     configure
+       ./configure
 
 ################################
 # 
 # Hygiene
 # 
 
+.PHONY: clean distclean mostlyclean maintainer-clean
 clean:
-       -rm *.cpio
-       -for l in ${LETTERS} ; do                                               
                        \
-               rm $${l} $${l}$${l} $${l}$${l}$${l} $${l}$${l}$${l}$${l} 
$${l}$${l}$${l}$${l}$${l} ;    \
-               rmdir $${l}$${l}$${l}$${l}$${l}.d ;                             
                        \
+       -rm -f *~ ${ELC_FILES}
+       for d in ${subdirs} ; do        \
+               cd $${d} ;              \
+               ${MAKE} address@hidden ;                \
+               cd .. ;                 \
        done
 
-distclean: clean
-       -rm -f *~
-
-mostlyclean: clean
+distclean: check_gnu   clean
+       if [ -e ${distdir} ] ; then rm -rf ${distdir} ; fi
+       tb=${TARBALL} ; if [ -e $${tb} ] ; then rm -rf $${tb} ; fi 
+       for f in ${PACKAGE}-${PACKAGE_VERSION}-*.${TAR_SUFFIX} ; do     \
+               if [ -e "$${f}" ] ; then                                \
+                       rm -rf "$${f}" ;                                \
+               fi ;                                                    \
+       done
 
-maintainer-clean: distclean
+mostlyclean:
+maintainer-clean:
 
 
 ################################
 # 
 # Documentation
 # 
+dvi:
+html:
+pdf:
+ps:
+info:
 
-dvi:   nonsense
-
-html:  nonsense
-
-pdf:   nonsense
-
-ps:    nonsense
 
 ################################
 # 
 # Distribution
 # 
 
-dist:  check_gnu distdir
-       ${INSTALL} Makefile.in ${distdir}
-
-distdir:       check_gnu
-       test -d ${distdir} || mkdir -o ${distdir}
+.PHONY: dist distdir dist_subdirs
+dist:  check_gnu       distdir dist_subdirs
+       tb=${TARBALL} ; cd ${srcdir} && tar ${TAR_OPTS} -f $${tb} ${distdir} && 
cp $${tb} ..
 
+distdir:       check_gnu       distclean
+       if [ -e ${distdir} ] ; then rm -rf ${distdir} || exit 1 ; fi ;          
        \
+       mkdir -p ${distdir} || exit 1 ;                                         
        \
+       tar -c -f - ${SRC_FILES} | ( cd ${distdir} ; tar -x -f - )
 
+dist_subdirs:
+       for d in ${subdirs} ; do        \
+               cd $${d} ;              \
+               ${MAKE} dist ;          \
+               cd ${abs_srcdir} ;      \
+       done
 
 ################################
 # 
 # Miscellany
 # 
 
-info:  nonsense
+tags:
+       etags *.el
 
 ################
 # 
 # Autoreconfiscation.
 # 
 
-${top_srcdir}/configure: ${top_srcdir}/configure.ac # aclocal.m4
-       cd '${top_srcdir}' && autoconf
+$(srcdir)/configure: configure.ac # aclocal.m4
+       cd '$(srcdir)' && autoconf
 
 # autoheader might not change config.h.in, so touch a stamp file.
-# ${top_srcdir}/config.h.in: stamp-h.in
-${top_srcdir}/stamp-h.in: ${top_srcdir}/configure.ac # aclocal.m4
-       cd '${top_srcdir}' # && autoheader
-       echo timestamp > '${top_srcdir}/stamp-h.in'
-
-${top_srcdir}/config.h: ${top_srcdir}/stamp-h
-${top_srcdir}/stamp-h: ${top_srcdir}/config.h.in ${top_srcdir}/config.status
-       cd '${top_srcdir}' ;            \
+$(srcdir)/config.h.in: stamp-h.in
+$(srcdir)/stamp-h.in: configure.ac # aclocal.m4
+       cd '$(srcdir)' # && autoheader
+       echo timestamp > '$(srcdir)/stamp-h.in'
+
+config.h: stamp-h
+stamp-h: config.h.in config.status
        ./config.status
 
-Makefile: Makefile.in ${top_srcdir}/config.status
-       cd '${top_srcdir}' ;            \
+Makefile: Makefile.in config.status
        ./config.status
 
-${top_srcdir}/config.status: ${top_srcdir}/configure
-       cd '${top_srcdir}' ;            \
+config.status: configure
        ./config.status --recheck
diff --git a/NEWS b/NEWS
index a80f654..7186b2d 100644
--- a/NEWS
+++ b/NEWS
@@ -1,7 +1,7 @@
 # -*- outline -*-
 
 # 
-# Copyright © 2015, 2018, 2019 Douglas Lewan, address@hidden
+# Copyright © 2019 Free Software Foundation, Inc.
 # All rights reserved.
 # 
 # This program is free software: you can redistribute it and/or modify
@@ -18,6 +18,16 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 # 
 
+* Version 0.16β
+** Copyright assignment to the FSF.
+
+* Version 0.15β
+** Killing the archive buffer now also kills all subordinates.
+** More work on meeting ELPA conventions.
+*** cpio.el is now cpio-mode.el
+*** removed cpio-mode-pkg.el
+
+
 * Version 0.14β
 ** Since this is beta code, the archive file is backed up.
 The backup file has a timestamp.
diff --git a/QUESTIONS b/QUESTIONS
index 4457f46..9029cce 100644
--- a/QUESTIONS
+++ b/QUESTIONS
@@ -1,8 +1,8 @@
 # -*- coding: utf-8 -*-
-#      $Id: QUESTIONS,v 1.5 2018/12/03 00:43:38 doug Exp $     
+#      $Id: QUESTIONS,v 1.7 2019/01/07 05:27:52 doug Exp $     
 
 # 
-# Copyright © 2018 Douglas Lewan, address@hidden
+# Copyright © 2019 Free Software Foundation, Inc.
 # All rights reserved.
 # 
 # This program is free software: you can redistribute it and/or modify
@@ -59,5 +59,6 @@ Dired related questions:
 • How should I handle undo?
   Can you undo an entry's deletion?
   chown, etc.?
+• Should killing the archive also kill its entry contents buffers?  
 
 Package related:
diff --git a/README b/README
index 3766f98..43499ed 100644
--- a/README
+++ b/README
@@ -1,8 +1,8 @@
 # -*- mode: org; encoding: utf-8 -*-
-#      $Id: README,v 1.11 2019/01/03 21:04:21 doug Exp $       
+#      $Id: README,v 1.14 2019/01/07 07:44:34 doug Exp $       
 
 # 
-# Copyright © 2017, 2018, 2019 Douglas Lewan, address@hidden
+# Copyright © 2019 Free Software Foundation, Inc.
 # All rights reserved.
 # 
 # This program is free software: you can redistribute it and/or modify
@@ -19,6 +19,14 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 # 
 
+* Caveat
+This is currenty beta code.
+Please don't do anything critical with it.
+
+That said, the current version /does/ create a backup
+of every archive that it is applied to.
+It is your responsibility to remove those archives.
+They are marked with a date time stamp in the form YYYYmmddHHMMSS.mmm.
 * Intent
 
 The intents of cpio-mode are the following:
@@ -61,7 +69,7 @@ However, the internal structure of cpio-mode implements
 all of the manipulation code in terms of parsed headers
 (which look much like inodes), so adding new formats should be
 relatively easy.
-See the documentation in cpio.el
+See the documentation in cpio-mode.el
 for a slightly more detailed description of this structure.
 
 You should be able to add a new format if
@@ -152,10 +160,13 @@ you cannot use any automatic invocation of cpio-mode.
 One way of doing this is to invoke »emacs -Q«.
 (You'll also need »-eval "(setq load-path (add-to-list 'load-path \".\"))"«.
 until I figure out the right way to handle loading.)
-Thus a good invocation is
+Thus, a good invocation is
     »emacs -Q -eval "(setq load-path (add-to-list 'load-path \".\"))"«
 Some recommendations for automatic invocation of cpio-mode can be found
-in the comments near the top of cpio.el.
+in the comments near the top of cpio-mode.el.
+
+And, of course, you must run ./configure
+before trying to run automated tests.
 
 ** Internals
 - cpio-generic-tests.el provides basic testing of some of the funciton
diff --git a/THANKS b/THANKS
index 187b893..3c021b2 100644
--- a/THANKS
+++ b/THANKS
@@ -1,5 +1,5 @@
 # 
-# Copyright © 2018 Douglas Lewan, address@hidden
+# Copyright © 2017, 2018, 2019 Douglas Lewan, address@hidden
 # All rights reserved.
 # 
 # This program is free software: you can redistribute it and/or modify
diff --git a/cab-test.el b/cab-test.el
index 6e4327f..35d969c 100644
--- a/cab-test.el
+++ b/cab-test.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 
-;; Copyright © 2017, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -18,10 +18,10 @@
 ;; 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 <(address@hidden>
-;; Maintainer: -- " --
+;; Author: Douglas Lewan <address@hidden>
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2017 Nov 22
-;; Version: 0.13β
+;; Version: 0.16β
 ;; Keywords: files
 
 ;;; Commentary:
@@ -48,8 +48,13 @@
 
 ;;;;;;;;;;;;;;;;
 ;; Make the byte compiler happy.
-(defvar *cab-parent)
+(defvar *cab-parent*)
+(setq *cab-parent* nil)
+
 (defvar *cab-subordinates*)
+(setq *cab-subordinates* nil)
+
+
 (declare-function ert-set-test "/usr/share/emacs/24.5/lisp/emacs-lisp/ert.el")
 (declare-function ert--signal-should-execution 
"/usr/share/emacs/24.5/lisp/emacs-lisp/ert.el")
 (declare-function ert-fail "/usr/share/emacs/24.5/lisp/emacs-lisp/ert.el")
diff --git a/configure.ac b/configure.ac
index 7946c23..fa4b4d6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 
 # 
-# Copyright © 2015, 2017, 2018 Douglas Lewan, address@hidden
+# Copyright © 2019 Free Software Foundation, Inc.
 # All rights reserved.
 # 
 # This program is free software: you can redistribute it and/or modify
@@ -19,7 +19,7 @@
 # 
 
 dnl Autoconf requirements
-AC_INIT(cpio-mode, 0.14β, address@hidden)
+AC_INIT(cpio-mode, 0.16β, address@hidden)
 AC_PREFIX_DEFAULT(${HOME}/local)
 
 dnl information on the package
@@ -61,8 +61,10 @@ dnl checks for compiler characteristics
 dnl checks for library functions
 dnl checks for system services
 
+dnl HEREHERE TODO: test_data/modes/Makefile,
 AC_CONFIG_FILES([Makefile
                 stamp-h
+                test_data/Makefile
                 test_data/alphabet/Makefile],
                 [echo timestamp > stamp-h])
 AC_OUTPUT
diff --git a/cpio-affiliated-buffers.el b/cpio-affiliated-buffers.el
index a44e1c3..de3d624 100644
--- a/cpio-affiliated-buffers.el
+++ b/cpio-affiliated-buffers.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 
-;; Copyright © 2017, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -19,9 +19,9 @@
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;; Author: Douglas Lewan <address@hidden>
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2017 Nov 22
-;; Version: 0.13β
+;; Version: 0.16β
 ;; Keywords: files
 
 ;;; Commentary:
@@ -106,8 +106,9 @@
 
 
 ;; HEREHERE Remove the following test code before publishing cpio-mode.
-(defvar *cab-info-buffer* (get-buffer-create "*cab info*")
+(defvar OBS-*cab-info-buffer* (get-buffer-create "*cab info*")
   "A buffer for holding information about affiliated buffers.")
+(setq OBS-*cab-info-buffer* (get-buffer-create "*cab info*"))
 
 (defun OBS-cab-test-kill-buffer-hook ()
   "Hook to run when killing a buffer.
@@ -167,7 +168,7 @@ It's not strictly a hook, but it pairs with the above 
kill-buffer-hook."
 ;; Dependencies
 ;; 
 (eval-when-compile
-  (require 'cl))
+  (require 'cl-lib))
 
 
 ;; 
@@ -175,9 +176,15 @@ It's not strictly a hook, but it pairs with the above 
kill-buffer-hook."
 ;; 
 (defvar *cab-subordinates* ()
   "A list of subordinate buffers affiliated with the current buffer.")
+(setq *cab-subordinates* ())
+
+
 (make-variable-buffer-local '*cab-subordinates*)
 (defvar *cab-parent* nil
   "The parent buffer of an affiliated buffer.")
+(setq *cab-parent* nil)
+
+
 (make-variable-buffer-local '*cab-parent*)
 
 ;; 
@@ -250,12 +257,6 @@ CONTRACT: BUFFER and PARENT are buffers."
   (let ((fname "cab-kill-buffer-hook")
        (buffer (current-buffer)))
     (cond ((buffer-live-p (current-buffer))
-          ;; (message "    Deregistering subordinates: [[%s]]." 
*cab-subordinates*)
-          (mapc (lambda (b)
-                  (if (buffer-live-p b)
-                      (with-current-buffer b
-                        (makunbound 'cab-parent))))
-                *cab-subordinates*)
           (if (buffer-live-p *cab-parent*)
               (with-current-buffer *cab-parent*
                 (delete buffer *cab-subordinates*))))
@@ -306,7 +307,7 @@ CAVEAT: This function should disappear as affiliated buffer 
code stabilizes."
     (mapc (lambda (b)
            (with-current-buffer b
              (if (boundp '*cab-subordinates*)
-                 (setq *cab-subordinates* (delete-duplicates 
*cab-subordinates*)))))
+                 (setq *cab-subordinates* (delete-dups *cab-subordinates*)))))
          (buffer-list))))
 
 (defun cab-clean-ruthlessly ()
diff --git a/cpio-bin.el b/cpio-bin.el
index 61fa0f6..83b0d27 100644
--- a/cpio-bin.el
+++ b/cpio-bin.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 ;; 
-;; Copyright © 2015, 2017, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -20,9 +20,9 @@
 ;; 
 
 ;; Author: Douglas Lewan <address@hidden>
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2015 Jan 03
-;; Version: 0.13β
+;; Version: 0.16β
 ;; Keywords: files
 
 ;;; Commentary:
@@ -38,19 +38,19 @@
 
 ;;;;;;;;;;;;;;;;
 ;; Things to make the byte compiler happy.
-(declare-function cpio-entry-name "cpio.el" (attrs))
-(declare-function cpio-ino "cpio.el" (attrs))
-(declare-function cpio-mode-value "cpio.el" (attrs))
-(declare-function cpio-uid "cpio.el" (attrs))
-(declare-function cpio-gid "cpio.el" (attrs))
-(declare-function cpio-nlink "cpio.el" (attrs))
-(declare-function cpio-mtime "cpio.el" (attrs))
-(declare-function cpio-entry-size "cpio.el" (attrs))
-(declare-function cpio-dev-maj "cpio.el" (attrs))
-(declare-function cpio-rdev-maj "cpio.el" (attrs))
-(declare-function cpio-entry-attrs-from-catalog-entry "cpio.el" (entry))
-(declare-function cpio-contents-start "cpio.el" (entry-name))
-(declare-function cpio-entry-attrs "cpio.el" (entry-name))
+(declare-function cpio-entry-name "cpio-mode.el" (attrs))
+(declare-function cpio-ino "cpio-mode.el" (attrs))
+(declare-function cpio-mode-value "cpio-mode.el" (attrs))
+(declare-function cpio-uid "cpio-mode.el" (attrs))
+(declare-function cpio-gid "cpio-mode.el" (attrs))
+(declare-function cpio-nlink "cpio-mode.el" (attrs))
+(declare-function cpio-mtime "cpio-mode.el" (attrs))
+(declare-function cpio-entry-size "cpio-mode.el" (attrs))
+(declare-function cpio-dev-maj "cpio-mode.el" (attrs))
+(declare-function cpio-rdev-maj "cpio-mode.el" (attrs))
+(declare-function cpio-entry-attrs-from-catalog-entry "cpio-mode.el" (entry))
+(declare-function cpio-contents-start "cpio-mode.el" (entry-name))
+(declare-function cpio-entry-attrs "cpio-mode.el" (entry-name))
 (defvar *cpio-catalog*)
 ;; EO things for the byte compiler.
 ;;;;;;;;;;;;;;;;
diff --git a/cpio-crc.el b/cpio-crc.el
index a74797b..d4f5e6a 100644
--- a/cpio-crc.el
+++ b/cpio-crc.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 ;; 
-;; Copyright © 2016, 2017, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -20,9 +20,9 @@
 ;; 
 
 ;; Author: Douglas Lewan <address@hidden>
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2015 Jan 03
-;; Version: 0.13β
+;; Version: 0.16β
 ;; Keywords: files
 
 ;;; Commentary:
@@ -55,10 +55,10 @@
 ;; Things to make the byte compiler happy.
 (declare-function cg-pad-right "cpio-generic.el")
 (declare-function cg-round-up "cpio-generic.el")
-(declare-function cpio-contents "cpio.el" (entry-name &optional 
archive-buffer))
-(declare-function cpio-entry-exists-p "cpio.el" (entry-name))
-(declare-function cpio-entry-name "cpio.el" (attrs))
-(declare-function cpio-entry-size "cpio.el" (attrs))
+(declare-function cpio-contents "cpio-mode.el" (entry-name &optional 
archive-buffer))
+(declare-function cpio-entry-exists-p "cpio-mode.el" (entry-name))
+(declare-function cpio-entry-name "cpio-mode.el" (attrs))
+(declare-function cpio-entry-size "cpio-mode.el" (attrs))
 (declare-function cpio-newc-parse-chksum "cpio-newc.el")
 (declare-function cpio-newc-parse-dev-maj "cpio-newc.el")
 (declare-function cpio-newc-parse-dev-min "cpio-newc.el")
@@ -74,7 +74,7 @@
 (declare-function cpio-newc-parse-rdev-min "cpio-newc.el")
 (declare-function cpio-newc-parse-uid "cpio-newc.el")
 (declare-function cpio-special-file "cpio-modes.el")
-(declare-function cpio-validate-catalog-entry "cpio.el" (catalog-entry))
+(declare-function cpio-validate-catalog-entry "cpio-mode.el" (catalog-entry))
 ;; EO things for the byte compiler.
 ;;;;;;;;;;;;;;;;
 
diff --git a/cpio-dired-crc-test.el b/cpio-dired-crc-test.el
index e7b16ac..aa99cd4 100644
--- a/cpio-dired-crc-test.el
+++ b/cpio-dired-crc-test.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 
-;; Copyright © 2017, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -19,9 +19,9 @@
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;; Author: Douglas Lewan <address@hidden>
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2018 May 16
-;; Version: 0.13β
+;; Version: 0.16β
 ;; Keywords: files
 
 ;;; Commentary:
@@ -36,9 +36,9 @@
 (load (concat default-directory "test-generic.el"))
 
 (setq load-path (add-to-list 'load-path default-directory))
-(if (file-exists-p (concat default-directory "cpio.elc"))
-    (load (concat default-directory "cpio.elc")))
-(load (concat default-directory "cpio.el"))
+(if (file-exists-p (concat default-directory "cpio-mode.elc"))
+    (load (concat default-directory "cpio-mode.elc")))
+(load (concat default-directory "cpio-mode.el"))
 
 ;;;;;;;;;;;;;;;;
 ;; Things to make the byte compiler happy.
@@ -58,8 +58,8 @@
 (defvar cpio-dired-keep-marker-copy-str)
 (defvar cpio-dired-keep-marker-rename)
 (defvar run-dir)
-(declare-function cpio-catalog "cpio.el")
-(declare-function cpio-contents-buffer-name "cpio.el")
+(declare-function cpio-catalog "cpio-mode.el")
+(declare-function cpio-contents-buffer-name "cpio-mode.el")
 (declare-function cpio-dired-add-entry "cpio-dired.el")
 (declare-function cpio-dired-buffer-name "cpio-dired.el")
 (declare-function cpio-dired-change-marks "cpio-dired.el")
@@ -155,7 +155,7 @@
 (declare-function cpio-image-dired-jump-thumbnail-buffer "cpio-dired.el")
 (declare-function cpio-image-dired-mark-tagged-entries "cpio-dired.el")
 (declare-function cpio-image-dired-tag-entries "cpio-dired.el")
-(declare-function cpio-mode "cpio.el")
+(declare-function cpio-mode "cpio-mode.el")
 (declare-function cpio-view-dired-style-buffer "cpio-dired.el")
 (declare-function cdmt-global-sub "test-generic.el")
 (declare-function cdmt-reset "test-generic.el")
@@ -6783,6 +6783,8 @@ then the entry names will be incorrect."
 ;; N.B. cdmt-crc- = cpio-dired-mode-test-
 
 (defvar run-dir default-directory)
+(setq run-dir default-directory)
+
 
 (custom-set-variables (list 'cpio-try-names nil))
 
diff --git a/cpio-dired-odc-test.el b/cpio-dired-odc-test.el
index 083d91b..540eb5e 100644
--- a/cpio-dired-odc-test.el
+++ b/cpio-dired-odc-test.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 
-;; Copyright © 2017, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -19,9 +19,9 @@
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;; Author: Douglas Lewan <address@hidden>
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2018 Mar 23
-;; Version: 0.13β
+;; Version: 0.16β
 ;; Keywords: 
 
 ;;; Commentary:
@@ -53,9 +53,9 @@
 
 (setq load-path (add-to-list 'load-path default-directory))
 
-(if (file-exists-p (concat default-directory "cpio.elc"))
-    (load (concat default-directory "cpio.elc"))
-  (load (concat default-directory "cpio.el")))
+(if (file-exists-p (concat default-directory "cpio-mode.elc"))
+    (load (concat default-directory "cpio-mode.elc"))
+  (load (concat default-directory "cpio-mode.el")))
 
 ;;;;;;;;;;;;;;;;
 ;; Things to make the byte compiler happy.
@@ -80,8 +80,8 @@
 (defvar cpio-dired-keep-marker-copy-str)
 (defvar cpio-dired-keep-marker-rename)
 (defvar run-dir)
-(declare-function cpio-catalog "cpio.el")
-(declare-function cpio-contents-buffer-name "cpio.el")
+(declare-function cpio-catalog "cpio-mode.el")
+(declare-function cpio-contents-buffer-name "cpio-mode.el")
 (declare-function cpio-dired-add-entry "cpio-dired.el")
 (declare-function cpio-dired-buffer-name "cpio-dired.el")
 (declare-function cpio-dired-change-marks "cpio-dired.el")
@@ -176,8 +176,8 @@
 (declare-function cpio-image-dired-jump-thumbnail-buffer "cpio-dired.el")
 (declare-function cpio-image-dired-mark-tagged-entries "cpio-dired.el")
 (declare-function cpio-image-dired-tag-entries "cpio-dired.el")
-(declare-function cpio-mode "cpio.el")
-(declare-function cpio-view-dired-style-buffer "cpio.el")
+(declare-function cpio-mode "cpio-mode.el")
+(declare-function cpio-view-dired-style-buffer "cpio-mode.el")
 (declare-function cdmt-global-sub "test-generic.el")
 (declare-function cdmt-reset "test-generic.el")
 (declare-function cdmt-test-save "test-generic.el")
diff --git a/cpio-dired-test.el b/cpio-dired-test.el
index 81ddf8b..2cc3204 100644
--- a/cpio-dired-test.el
+++ b/cpio-dired-test.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 
-;; Copyright © 2017, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -19,9 +19,9 @@
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;; Author: Douglas Lewan <address@hidden>
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2018 Mar 23
-;; Version: 0.13β
+;; Version: 0.16β
 ;; Keywords: 
 
 ;;; Commentary:
@@ -60,9 +60,9 @@
 (load (concat default-directory "test-generic.el"))
 
 (eval-when-compile
-  (if (file-exists-p (concat default-directory "cpio.elc"))
-      (load (concat default-directory "cpio.elc")))
-  (load (concat default-directory "cpio.el")))
+  (if (file-exists-p (concat default-directory "cpio-mode.elc"))
+      (load (concat default-directory "cpio-mode.elc")))
+  (load (concat default-directory "cpio-mode.el")))
 
 ;;;;;;;;;;;;;;;;
 ;; Things to make the byte compiler happy.
@@ -72,8 +72,8 @@
 (defvar cpio-dired-del-marker)
 (defvar cpio-dired-keep-marker-copy-str)
 (defvar cpio-dired-keep-marker-rename)
-(declare-function cpio-catalog "cpio.el")
-(declare-function cpio-contents-buffer-name "cpio.el")
+(declare-function cpio-catalog "cpio-mode.el")
+(declare-function cpio-contents-buffer-name "cpio-mode.el")
 (declare-function cpio-dired-add-entry "cpio-dired.el")
 (declare-function cpio-dired-buffer-name "cpio-dired.el")
 (declare-function cpio-dired-change-marks "cpio-dired.el")
@@ -168,7 +168,7 @@
 (declare-function cpio-image-dired-jump-thumbnail-buffer "cpio-dired.el")
 (declare-function cpio-image-dired-mark-tagged-entries "cpio-dired.el")
 (declare-function cpio-image-dired-tag-entries "cpio-dired.el")
-(declare-function cpio-mode "cpio.el")
+(declare-function cpio-mode "cpio-mode.el")
 (declare-function cpio-view-dired-style-buffer "cpio-dired.el")
 (declare-function cdmt-reset "test-generic.el")
 (declare-function cdmt-tidy-up-catalog "test-generic.el")
@@ -6783,6 +6783,8 @@ TRAILER!!!        (( filename ))
 ;; N.B. cdmt-newc- = cpio-dired-mode-test-
 
 (defvar run-dir default-directory)
+(setq run-dir default-directory)
+
 
 (custom-set-variables (list 'cpio-try-names nil))
 
diff --git a/cpio-dired.el b/cpio-dired.el
index b50949f..134cc5a 100644
--- a/cpio-dired.el
+++ b/cpio-dired.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 
-;; Copyright © 2017, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -19,9 +19,9 @@
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;; Author: Douglas Lewan <address@hidden>
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2017 Dec 01
-;; Version: 0.13β
+;; Version: 0.16β
 ;; Keywords: files
 
 ;;; Commentary:
@@ -123,53 +123,53 @@ Keep any preceding comments."
 (defvar *cpio-catalog-entry-attrs-idx*)
 (defvar *cpio-catalog-entry-contents-start-idx*)
 (defvar *cpio-catalog-entry-header-start-idx*)
-(declare-function cpio-adjust-trailer "cpio.el")
-(declare-function cpio-catalog "cpio.el")
-(declare-function cpio-contents "cpio.el")
-(declare-function cpio-contents-start "cpio.el")
-(declare-function cpio-create-entry-attrs "cpio.el")
-(declare-function cpio-create-faux-directory-attrs "cpio.el")
-(declare-function cpio-delete-trailer "cpio.el")
-(declare-function cpio-dev-maj "cpio.el")
-(declare-function cpio-dev-maj-to-dev-maj-string "cpio.el")
-(declare-function cpio-dev-min "cpio.el")
-(declare-function cpio-dev-min-to-dev-min-string "cpio.el")
+(declare-function cpio-adjust-trailer "cpio-mode.el")
+(declare-function cpio-catalog "cpio-mode.el")
+(declare-function cpio-contents "cpio-mode.el")
+(declare-function cpio-contents-start "cpio-mode.el")
+(declare-function cpio-create-entry-attrs "cpio-mode.el")
+(declare-function cpio-create-faux-directory-attrs "cpio-mode.el")
+(declare-function cpio-delete-trailer "cpio-mode.el")
+(declare-function cpio-dev-maj "cpio-mode.el")
+(declare-function cpio-dev-maj-to-dev-maj-string "cpio-mode.el")
+(declare-function cpio-dev-min "cpio-mode.el")
+(declare-function cpio-dev-min-to-dev-min-string "cpio-mode.el")
 (declare-function cpio-dired-modified-p "cpio-dired.el")
 (declare-function cpio-dired-set-modified "cpio-dired.el")
 (declare-function cpio-dired-set-unmodified "cpio-dired.el")
-(declare-function cpio-entry "cpio.el")
-(declare-function cpio-entry-attrs "cpio.el")
-(declare-function cpio-entry-contents-start "cpio.el")
-(declare-function cpio-entry-exists-p "cpio.el")
-(declare-function cpio-entry-header-start "cpio.el")
-(declare-function cpio-entry-name "cpio.el")
-(declare-function cpio-entry-name-to-entry-name-string "cpio.el")
-(declare-function cpio-entry-size "cpio.el")
-(declare-function cpio-extract-all "cpio.el")
-(declare-function cpio-filesize-to-filesize-string "cpio.el")
-(declare-function cpio-find-entry "cpio.el")
-(declare-function cpio-gid "cpio.el")
-(declare-function cpio-gid-to-gid-string "cpio.el")
-(declare-function cpio-insert-padded-contents "cpio.el")
-(declare-function cpio-insert-trailer "cpio.el")
-(declare-function cpio-make-header-string "cpio.el")
-(declare-function cpio-mode "cpio.el")
-(declare-function cpio-mode-value "cpio.el")
-(declare-function cpio-move-to-entry "cpio.el")
-(declare-function cpio-mtime "cpio.el")
-(declare-function cpio-mtime-to-mtime-string "cpio.el")
-(declare-function cpio-nlink "cpio.el")
-(declare-function cpio-nlink-to-nlink-string "cpio.el")
-(declare-function cpio-numeric-entry-type "cpio.el")
-(declare-function cpio-set-contents-start "cpio.el")
-(declare-function cpio-set-entry-name "cpio.el")
-(declare-function cpio-set-entry-unmodified "cpio.el")
-(declare-function cpio-set-gid "cpio.el")
-(declare-function cpio-set-mode "cpio.el")
-(declare-function cpio-set-uid "cpio.el")
-(declare-function cpio-sort-catalog "cpio.el")
-(declare-function cpio-uid "cpio.el")
-(declare-function cpio-uid-to-uid-string "cpio.el")
+(declare-function cpio-entry "cpio-mode.el")
+(declare-function cpio-entry-attrs "cpio-mode.el")
+(declare-function cpio-entry-contents-start "cpio-mode.el")
+(declare-function cpio-entry-exists-p "cpio-mode.el")
+(declare-function cpio-entry-header-start "cpio-mode.el")
+(declare-function cpio-entry-name "cpio-mode.el")
+(declare-function cpio-entry-name-to-entry-name-string "cpio-mode.el")
+(declare-function cpio-entry-size "cpio-mode.el")
+(declare-function cpio-extract-all "cpio-mode.el")
+(declare-function cpio-filesize-to-filesize-string "cpio-mode.el")
+(declare-function cpio-find-entry "cpio-mode.el")
+(declare-function cpio-gid "cpio-mode.el")
+(declare-function cpio-gid-to-gid-string "cpio-mode.el")
+(declare-function cpio-insert-padded-contents "cpio-mode.el")
+(declare-function cpio-insert-trailer "cpio-mode.el")
+(declare-function cpio-make-header-string "cpio-mode.el")
+(declare-function cpio-mode "cpio-mode.el")
+(declare-function cpio-mode-value "cpio-mode.el")
+(declare-function cpio-move-to-entry "cpio-mode.el")
+(declare-function cpio-mtime "cpio-mode.el")
+(declare-function cpio-mtime-to-mtime-string "cpio-mode.el")
+(declare-function cpio-nlink "cpio-mode.el")
+(declare-function cpio-nlink-to-nlink-string "cpio-mode.el")
+(declare-function cpio-numeric-entry-type "cpio-mode.el")
+(declare-function cpio-set-contents-start "cpio-mode.el")
+(declare-function cpio-set-entry-name "cpio-mode.el")
+(declare-function cpio-set-entry-unmodified "cpio-mode.el")
+(declare-function cpio-set-gid "cpio-mode.el")
+(declare-function cpio-set-mode "cpio-mode.el")
+(declare-function cpio-set-uid "cpio-mode.el")
+(declare-function cpio-sort-catalog "cpio-mode.el")
+(declare-function cpio-uid "cpio-mode.el")
+(declare-function cpio-uid-to-uid-string "cpio-mode.el")
 ;; EO byte compiler code.
 ;;;;;;;;;;;;;;;;
 
@@ -330,25 +330,39 @@ This is what the do-commands look for, and what the 
mark-commands store.")
 
 (defvar cpio-dired-del-marker ?D
   "Character used to flag entries for deletion.")
+(setq cpio-dired-del-marker ?D)
+
 (defvar cpio-dired-del-str (char-to-string cpio-dired-del-marker)
   "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
   "Character used to flag entries for copying.")
+(setq cpio-dired-keep-marker-copy ?C)
+
 (defvar cpio-dired-keep-marker-copy-str ?C
   "In cpio-dired, a string corresponding to cpio-dired-keep-marker-copy.")
+(setq cpio-dired-keep-marker-copy-str ?C)
+
 
 ;; HEREHERE dired-keep-marker-rename is customizable.
 ;; Should it be here too?
 (defvar cpio-dired-keep-marker-rename ?R
   "Character used to flag entries for renaming.")
+(setq cpio-dired-keep-marker-rename ?R)
+
 (defvar cpio-dired-keep-marker-rename-str (char-to-string 
cpio-dired-keep-marker-rename)
   "In cpio-dired, a string corresponding to cpio-dired-keep-marker-rename.")
+(setq cpio-dired-keep-marker-rename-str (char-to-string 
cpio-dired-keep-marker-rename))
+
 
 (defvar cpio-dired-re-inode-size "[0-9 \t]*"
   "Regexp for optional initial inode and file size as made by `ls -i -s'.")
+(setq cpio-dired-re-inode-size "[0-9 \t]*")
+
 
 ;; These regexps must be tested at beginning-of-line, but are also
 ;; used to search for next matches, so neither omitting "^" nor
@@ -357,12 +371,20 @@ This is what the do-commands look for, and what the 
mark-commands store.")
 (defvar cpio-dired-re-mark "^[^ \n]"
   "Regexp matching a marked line.
 Important: the match ends just after the marker.")
+(setq cpio-dired-re-mark "^[^ \n]")
+
 (defvar cpio-dired-re-maybe-mark "^. ")
+(setq cpio-dired-re-maybe-mark "^. ")
+
 ;; The [^:] part after "d" and "l" is to avoid confusion with the
 ;; DOS/Windows-style drive letters in directory names, like in "d:/foo".
 (defvar cpio-dired-re-dir (concat cpio-dired-re-maybe-mark 
cpio-dired-re-inode-size "d[^:]"))
+(setq cpio-dired-re-dir (concat cpio-dired-re-maybe-mark 
cpio-dired-re-inode-size "d[^:]"))
+
 (defvar cpio-dired-re-sym (concat cpio-dired-re-maybe-mark 
cpio-dired-re-inode-size "l[^:]"))
-(defvar cpio-dired-re-exe;; match ls permission string of an executable file
+(setq cpio-dired-re-sym (concat cpio-dired-re-maybe-mark 
cpio-dired-re-inode-size "l[^:]"))
+
+(defvar cpio-dired-re-exe ;; match ls permission string of an executable file
   (mapconcat (function
              (lambda (x)
                ;; (concat cpio-dired-re-maybe-mark cpio-dired-re-inode-size 
x)))
@@ -371,8 +393,22 @@ Important: the match ends just after the marker.")
               "-[-r][-w].[-r][-w][xs][-r][-w]."
               "-[-r][-w].[-r][-w].[-r][-w][xst]")
             "\\|"))
+(setq cpio-dired-re-exe ;; match ls permission string of an executable file
+  (mapconcat (function
+             (lambda (x)
+               ;; (concat cpio-dired-re-maybe-mark cpio-dired-re-inode-size 
x)))
+               (concat cpio-dired-re-maybe-mark " " x)))
+            '("-[-r][-w][xs][-r][-w].[-r][-w]."
+              "-[-r][-w].[-r][-w][xs][-r][-w]."
+              "-[-r][-w].[-r][-w].[-r][-w][xst]")
+            "\\|"))
+
 (defvar cpio-dired-re-perms "[-bcdlps][-r][-w].[-r][-w].[-r][-w].")
+(setq cpio-dired-re-perms "[-bcdlps][-r][-w].[-r][-w].[-r][-w].")
+
 (defvar cpio-dired-re-dot "^.* \\.\\.?/?$")
+(setq cpio-dired-re-dot "^.* \\.\\.?/?$")
+
 (defvar cpio-dired-font-lock-keywords
   ;; cpio-dired-font-lock-keywords is adapted from dired.
   (list
@@ -477,12 +513,12 @@ Important: the match ends just after the marker.")
    ;; permissions, to win generally.  -- fx.
    ;; Fixme: we could also put text properties on the permission
    ;; fields with keymaps to frob the permissions, somewhat a la XEmacs.
-   (list (concat cpio-dired-re-maybe-mark cpio-dired-re-inode-size
-                "[-d]....\\(w\\)....") ; group writable
-        '(1 cpio-dired-perm-write-face))
-   (list (concat cpio-dired-re-maybe-mark cpio-dired-re-inode-size
-                "[-d].......\\(w\\).") ; world writable
-        '(1 cpio-dired-perm-write-face))
+;;DL   (list (concat cpio-dired-re-maybe-mark cpio-dired-re-inode-size
+;;DL            "[-d]....\\(w\\)....") ; group writable
+;;DL    '(1 cpio-dired-perm-write-face))
+;;DL   (list (concat cpio-dired-re-maybe-mark cpio-dired-re-inode-size
+;;DL            "[-d].......\\(w\\).") ; world writable
+;;DL    '(1 cpio-dired-perm-write-face))
    ;;
    ;; Subdirectories.
    (list cpio-dired-re-dir
@@ -526,29 +562,44 @@ Important: the match ends just after the marker.")
 
 (defvar cpio-entry-name ()
   "Name of the entry whose contents are being edited.")
+(setq cpio-entry-name ())
+
 
 (defconst *cpio-dirline-re* "^..d"
   "Regular expression to match an entry for a directory.")
+(setq *cpio-dirline-re* "^..d")
+
 
 (defvar *cpio-dired-copy-history* ()
   "History of copies made in cpio-dired-mode.")
+(setq *cpio-dired-copy-history* ())
+
 
 (defvar *cpio-dired-do-chgrp-history* ()
   "History of M-x cpio-dired-do-chgrp.")
+(setq *cpio-dired-do-chgrp-history* ())
+
 
 (defvar *cpio-dired-do-chown-history* ()
   "History of M-x cpio-dired-do-chown.")
+(setq *cpio-dired-do-chown-history* ())
+
 
 (defvar *cpio-dired-do-rename-history* ()
   "History of M-x cpio-dired-do-rename.")
+(setq *cpio-dired-do-rename-history* ())
+
 
 (defvar *cpio-dired-head-offset* 2
   "The number of lines in the cpio-dired buffer devoted to the dired-style 
header.")
+(setq *cpio-dired-head-offset* 2)
+
 
 (defvar *cpio-dired-buffer* ()
   "The [subordinate] buffer used to present the curent catalog
 à la dired.")
 (setq *cpio-dired-buffer* ())
+
 (make-variable-buffer-local '*cpio-dired-buffer*)
 
 
@@ -568,6 +619,8 @@ Important: the match ends just after the marker.")
   :version "22.1")
 (defvar cpio-dired-header-face 'cpio-dired-header
   "Face name used for directory headers.")
+(setq cpio-dired-header-face 'cpio-dired-header)
+
 
 (defface cpio-dired-mark
   '((t (:inherit font-lock-constant-face)))
@@ -592,6 +645,8 @@ Important: the match ends just after the marker.")
   :version "22.1")
 (defvar cpio-dired-flagged-face 'cpio-dired-flagged
   "Face name used for files flagged for deletion.")
+(setq cpio-dired-flagged-face 'cpio-dired-flagged)
+
 
 (defface cpio-dired-warning
   ;; Inherit from font-lock-warning-face since with min-colors 8
@@ -613,6 +668,8 @@ Important: the match ends just after the marker.")
   :version "22.2")
 (defvar cpio-dired-perm-write-face 'cpio-dired-perm-write
   "Face name used for permissions of group- and world-writable files.")
+(setq cpio-dired-perm-write-face 'cpio-dired-perm-write)
+
 
 (defface cpio-dired-directory
   '((t (:inherit font-lock-function-name-face)))
@@ -621,6 +678,8 @@ Important: the match ends just after the marker.")
   :version "22.1")
 (defvar cpio-dired-directory-face 'cpio-dired-directory
   "Face name used for subdirectories.")
+(setq cpio-dired-directory-face 'cpio-dired-directory)
+
 
 (defface cpio-dired-symlink
   '((t (:inherit font-lock-keyword-face)))
@@ -629,6 +688,8 @@ Important: the match ends just after the marker.")
   :version "22.1")
 (defvar cpio-dired-symlink-face 'cpio-dired-symlink
   "Face name used for symbolic links.")
+(setq cpio-dired-symlink-face 'cpio-dired-symlink)
+
 
 (defface cpio-dired-ignored
   '((t (:inherit shadow)))
@@ -637,6 +698,8 @@ Important: the match ends just after the marker.")
   :version "22.1")
 (defvar cpio-dired-ignored-face 'cpio-dired-ignored
   "Face name used for files suffixed with `completion-ignored-extensions'.")
+(setq cpio-dired-ignored-face 'cpio-dired-ignored)
+
 
 (defcustom cpio-dired-trivial-filenames dired-trivial-filenames
   "Regexp of entries to skip when finding the first meaningful entry of a 
directory."
@@ -944,12 +1007,12 @@ This returns the buffer created."
     ;; No, I do not yet understand why this must be done
     ;; every time the presentation is updated.
 
-    ;; (with-current-buffer "cpio.el"
+    ;; (with-current-buffer "cpio-mode.el"
     ;;   kill-buffer-hook)
 
     (cab-register buffer archive-buffer)
 
-    ;; (with-current-buffer "cpio.el"
+    ;; (with-current-buffer "cpio-mode.el"
     ;;    kill-buffer-hook)
 
     buffer))
@@ -2057,6 +2120,8 @@ in the active region."
 ;; % &         dired-flag-garbage-entries
 (defvar cpio-dired-garbage-entries-regexp dired-garbage-files-regexp
   "Regular expression to match in cpio-dired-flag-garbage-entries.")
+(setq cpio-dired-garbage-entries-regexp dired-garbage-files-regexp)
+
 (defun cpio-dired-flag-garbage-entries () ;✓✓✓
   "Flag for deletion all entries that match 
`cpio-dired-garbage-entries-regexp'."
   (interactive)
@@ -2136,9 +2201,8 @@ and any affiliated buffers thereof."
                   (if (y-or-n-p "You've made changes to the archive. Save 
first? ")
                       (cpio-dired-save-archive)))
               (with-current-buffer *cab-parent*
-                (remove-hook 'kill-buffer-hook 'cab-kill-buffer-hook)
                 (kill-buffer))
-              (remove-hook 'kill-buffer-hook 'cab-kill-buffer-hook)
+              ;; This should be a noop.
               (kill-buffer))
              (t
               (warn "%s(): Archive buffer [[%s]] is not there." fname 
(file-name-nondirectory (buffer-file-name *cab-parent*)))
@@ -2931,6 +2995,8 @@ permissions are hidden from view."
 ;; mode definition
 ;; 
 (defvar *cpio-dired-have-made-keymap* nil)
+(setq *cpio-dired-have-made-keymap* nil)
+
 
 (define-derived-mode cpio-dired-mode fundamental-mode "cpio-dired"
   "Mode for editing cpio archives in the style of dired."
diff --git a/cpio-entry-contents-mode.el b/cpio-entry-contents-mode.el
index ab7f73c..1a07047 100644
--- a/cpio-entry-contents-mode.el
+++ b/cpio-entry-contents-mode.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 ;; 
-;; Copyright © 2017, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -19,9 +19,9 @@
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;; Author: Douglas Lewan <address@hidden>
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2017 Dec 06
-;; Version: 0.13β
+;; Version: 0.16β
 ;; Keywords: files
 
 ;;; Commentary:
@@ -97,21 +97,21 @@ If NAME is not given, then use 'aa'."
 ;; Things to make the byte compiler happy.
 (defvar cpio-entry-name)
 (defvar *cpio-catalog-entry-contents-start-idx*)
-(declare-function cpio-contents-start "cpio.el")
-(declare-function cpio-delete-archive-entry "cpio.el")
+(declare-function cpio-contents-start "cpio-mode.el")
+(declare-function cpio-delete-archive-entry "cpio-mode.el")
 (declare-function cpio-dired-find-entry "cpio-dired.el")
 (declare-function cpio-dired-goto-entry "cpio-dired.el")
-(declare-function cpio-entry "cpio.el")
-(declare-function cpio-entry-attrs "cpio.el")
-(declare-function cpio-entry-exists-p "cpio.el")
-(declare-function cpio-entry-header-start "cpio.el")
-(declare-function cpio-insert-padded-contents "cpio.el")
-(declare-function cpio-make-header-string "cpio.el")
-(declare-function cpio-mode "cpio.el")
+(declare-function cpio-entry "cpio-mode.el")
+(declare-function cpio-entry-attrs "cpio-mode.el")
+(declare-function cpio-entry-exists-p "cpio-mode.el")
+(declare-function cpio-entry-header-start "cpio-mode.el")
+(declare-function cpio-insert-padded-contents "cpio-mode.el")
+(declare-function cpio-make-header-string "cpio-mode.el")
+(declare-function cpio-mode "cpio-mode.el")
 (declare-function cpio-present-ala-dired "cpio-dired.el")
-(declare-function cpio-set-entry-modified "cpio.el")
-(declare-function cpio-set-entry-size "cpio.el")
-(declare-function cpio-entry-exists-p "cpio.el")
+(declare-function cpio-set-entry-modified "cpio-mode.el")
+(declare-function cpio-set-entry-size "cpio-mode.el")
+(declare-function cpio-entry-exists-p "cpio-mode.el")
 (declare-function cpio-dired-goto-entry "cpio-dired.el")
 (declare-function cpio-dired-find-entry "cpio-dired.el")
 ;; EO things for the byte compiler.
@@ -214,6 +214,8 @@ reload the [current] entry contents."
 ;; 
 (defvar *cpio-entry-contents-mode-map* (make-sparse-keymap)
   "Keymap for cpio-entry-contents-mode.")
+(setq *cpio-entry-contents-mode-map* (make-sparse-keymap))
+
 
 (defun cpio-entry-contents-make-keymap ()
   "Define the keys that cpio-entry-contents-mode must override."
@@ -250,7 +252,8 @@ prepared for editing."
     (set-auto-mode 'keep-mode-if-same)
     (setq *cab-parent* cab-parent)
     (setq cpio-entry-name entry-name)
-    (setq buffer-file-name local-buffer-file-name)
+    ;; Why was I doing this?
+    ;; (setq buffer-file-name local-buffer-file-name)
     (setq cpio-entry-contents-mode t)))
 
 (cpio-entry-contents-make-keymap)
diff --git a/cpio-entry-header.el b/cpio-entry-header.el
index 4b3d6f5..7b02932 100644
--- a/cpio-entry-header.el
+++ b/cpio-entry-header.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 ;; 
-;; Copyright © 2015, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -20,9 +20,9 @@
 ;; 
 
 ;; Author: Douglas Lewan <address@hidden>
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2015 Jan 03
-;; Version: 0.13β
+;; Version: 0.16β
 ;; Keywords: files
 
 ;;; Commentary:
diff --git a/cpio-generic-tests.el b/cpio-generic-tests.el
index 82f28a0..eb08044 100644
--- a/cpio-generic-tests.el
+++ b/cpio-generic-tests.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 ;; 
-;; Copyright © 2015, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -19,9 +19,9 @@
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ;; 
 ;; Author: Douglas Lewan <address@hidden>
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2015 Dec 27
-;; Version: 0.13β
+;; Version: 0.15β
 ;; Keywords: 
 
 ;;; Commentary:
diff --git a/cpio-generic.el b/cpio-generic.el
index 30289b0..6da6a8e 100644
--- a/cpio-generic.el
+++ b/cpio-generic.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 ;; 
-;; Copyright © 2015, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -20,9 +20,9 @@
 ;; 
 
 ;; Author: Douglas Lewan <address@hidden>
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2015 Apr 23
-;; Version: 0.13β
+;; Version: 0.16β
 ;; Keywords: files
 
 ;;; Commentary:
@@ -73,7 +73,7 @@
        (setq *cg-integer-hex-digits* hex-digit-ct)))
   *cg-integer-hex-digits*)
 
-(defun cg-hex-format-pair (pair)
+(defun OBS-cg-hex-format-pair (pair)
   "Return a hex formatted representation of PAIR."
   (let ((fname "cg-hex-format-pair")
        (hex-digit-count (cg-integer-hex-digits))
@@ -82,7 +82,7 @@
     (setq formatter (concat formatter formatter))
     (format formatter (car pair) (cdr pair))))
 
-(defun cg-hex-format-triple (triple)
+(defun OBS-cg-hex-format-triple (triple)
   "Return a hex formatted representation of TRIPLE."
   (let ((fname "cg-hex-format-triple")
        (hex-digit-count (cg-integer-hex-digits))
diff --git a/cpio-hpbin.el b/cpio-hpbin.el
index 3ebf294..e7c98cf 100644
--- a/cpio-hpbin.el
+++ b/cpio-hpbin.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 ;; 
-;; Copyright © 2015, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -20,9 +20,9 @@
 ;; 
 
 ;; Author: Douglas Lewan <address@hidden>
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2015 Jan 03
-;; Version: 0.13β
+;; Version: 0.16β
 ;; Keywords: files
 
 ;;; Commentary:
diff --git a/cpio-hpodc.el b/cpio-hpodc.el
index 3340f35..cfa3852 100644
--- a/cpio-hpodc.el
+++ b/cpio-hpodc.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 ;; 
-;; Copyright © 2015, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -20,9 +20,9 @@
 ;; 
 
 ;; Author: Douglas Lewan <address@hidden>
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2015 Jan 03
-;; Version: 0.13β
+;; Version: 0.16β
 ;; Keywords: files
 
 ;;; Commentary:
diff --git a/cpio-modes-test.el b/cpio-modes-test.el
index 5994214..6a7fe0e 100644
--- a/cpio-modes-test.el
+++ b/cpio-modes-test.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 ;; 
-;; Copyright © 2017, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -19,9 +19,9 @@
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;; Author: Douglas Lewan <address@hidden>
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2017 Nov 28
-;; Version: 0.13β
+;; Version: 0.16β
 ;; Keywords: 
 
 ;;; Commentary:
diff --git a/cpio-modes.el b/cpio-modes.el
index 2dc53ab..a506317 100644
--- a/cpio-modes.el
+++ b/cpio-modes.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 ;; 
-;; Copyright © 2017, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -19,9 +19,9 @@
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;; Author: Douglas Lewan <address@hidden>
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2017 Nov 28
-;; Version: 0.13β
+;; Version: 0.16β
 ;; Keywords: files
 
 ;;; Commentary:
@@ -36,11 +36,11 @@
 ;; Dependencies
 ;; 
 (eval-when-compile
-  (require 'cl))
+  (require 'cl-lib))
 
 ;;;;;;;;;;;;;;;;
 ;; Things to make the byte compiler happy.
-(declare-function cpio-mode-value "cpio.el")
+(declare-function cpio-mode-value "cpio-mode.el")
 ;; EO things for the byte compiler.
 ;;;;;;;;;;;;;;;;
 
@@ -126,13 +126,29 @@ fmt, sock, link, block, character, fifo."
     (concat file-type user-mode group-mode other-mode)))
 
 (defvar *cpio-modes-link*    "l")
+(setq *cpio-modes-link* "l")
+
 (defvar *cpio-modes-reg*     "-")
+(setq *cpio-modes-reg* "-")
+
 (defvar *cpio-modes-dir*     "d")
+(setq *cpio-modes-dir* "d")
+
 (defvar *cpio-modes-char*    "c")
+(setq *cpio-modes-char* "c")
+
 (defvar *cpio-modes-block*   "b")
+(setq *cpio-modes-block* "b")
+
 (defvar *cpio-modes-fifo*    "p")
+(setq *cpio-modes-fifo* "p")
+
 (defvar *cpio-modes-sock*    "s")
+(setq *cpio-modes-sock* "s")
+
 (defvar *cpio-modes-unknown* "?")
+(setq *cpio-modes-unknown* "?")
+
 
 (defun cpio-int-mode-to-file-type (int-mode)
   "Extract the one character string that expresses the file type from INT-MODE.
@@ -264,6 +280,8 @@ please let me know."
             "-")))))
 
 (defun cpio-mode-string-to-int-mode (mode-string)
+  ;; HEREHERE This should do some error checking.
+  ;; It will currently flag an error if MODE-STRING is not long enough.
   "Convert an ls -l style mode string to its corresponding integer."
   (let* ((fname "cpio-mode-string-to-int-mode")
         (bits 0)
@@ -393,6 +411,34 @@ please let me know."
           (setq bits (logior bits s-isvtx))))
     bits))
 
+(defun cpio-mode-extractable-p (mode)
+  "Return non-NIL if MODE represents an entry that can be extracted by 
cpio-mode.
+That is, a regular file, symbolic link or directory. "
+  (let ((fname "cpio-mode-not-extractable-p"))
+    (or (s-islnk mode)
+       (s-isreg mode)
+       (s-isdir mode))))
+
+(defun cpio-valid-numeric-mode (proposed-mode-num)
+  "Return non-NIL if the PROPOSED-MODE-NUM is a valid numeric file mode."
+  (let ((fname "cpio-valid-numeric-mode"))
+    (/= 0 (logxor proposed-mode-num
+                 ;; This list could be pared down a little,
+                 ;; but this is more readable.
+                 (logand s-ifmt
+                         s-ifsock
+                         s-iflnk
+                         s-ifreg
+                         s-ifblk
+                         s-ifdir
+                         s-ifchr
+                         s-ififo
+                         s-isuid
+                         s-isgid
+                         s-isvtx
+                         s-irwxu
+                         s-irwxg
+                         s-irwxo)))))
 
 (provide 'cpio-modes)
 ;;; cpio-modes ends here
diff --git a/cpio-newc-tests.el b/cpio-newc-tests.el
index d1c5e9b..60d09d0 100644
Binary files a/cpio-newc-tests.el and b/cpio-newc-tests.el differ
diff --git a/cpio-newc.el b/cpio-newc.el
index ae501cf..4752272 100644
--- a/cpio-newc.el
+++ b/cpio-newc.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 ;; 
-;; Copyright © 2015, 2016, 2017, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -20,9 +20,9 @@
 ;; 
 
 ;; Author: Douglas Lewan <address@hidden>
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2015 Jan 03
-;; Version: 0.13β
+;; Version: 0.16β
 ;; Keywords: files
 
 ;;; Commentary:
@@ -52,8 +52,8 @@
 ;; Dependencies
 ;; 
 (eval-when-compile
-  (require 'cl))
-(require 'cl)
+  (require 'cl-lib))
+(require 'cl-lib)
 
 ;; (condition-case err
 ;;     (require 'cpio-generic)
@@ -66,19 +66,19 @@
 ;; Things to make the byte compiler happy.
 (defvar *cpio-catalog*)
 (defvar *cpio-padding-modulus*)
-(declare-function cpio-entry-name "cpio.el")
-(declare-function cpio-ino "cpio.el")
-(declare-function cpio-mode-value "cpio.el")
-(declare-function cpio-uid "cpio.el")
-(declare-function cpio-gid "cpio.el")
-(declare-function cpio-nlink "cpio.el")
-(declare-function cpio-mtime "cpio.el")
-(declare-function cpio-entry-size "cpio.el")
-(declare-function cpio-dev-maj "cpio.el")
-(declare-function cpio-dev-min "cpio.el")
-(declare-function cpio-entry-attrs-from-catalog-entry "cpio.el")
-(declare-function cpio-contents-start "cpio.el")
-(declare-function cpio-entry-attrs "cpio.el")
+(declare-function cpio-entry-name "cpio-mode.el")
+(declare-function cpio-ino "cpio-mode.el")
+(declare-function cpio-mode-value "cpio-mode.el")
+(declare-function cpio-uid "cpio-mode.el")
+(declare-function cpio-gid "cpio-mode.el")
+(declare-function cpio-nlink "cpio-mode.el")
+(declare-function cpio-mtime "cpio-mode.el")
+(declare-function cpio-entry-size "cpio-mode.el")
+(declare-function cpio-dev-maj "cpio-mode.el")
+(declare-function cpio-dev-min "cpio-mode.el")
+(declare-function cpio-entry-attrs-from-catalog-entry "cpio-mode.el")
+(declare-function cpio-contents-start "cpio-mode.el")
+(declare-function cpio-entry-attrs "cpio-mode.el")
 ;; EO things for the byte compiler.
 ;;;;;;;;;;;;;;;;
 
@@ -800,7 +800,7 @@ once the TRAILER is written and padded."
 ;; 
 
 (eval-when-compile
-  (require 'cl))                               ;For (mapcar*)
+  (require 'cl-lib))                           ;For (mapcar*)
 (defun cpio-newc-present-header (header-string)
   "Parse the HEADER-STRING and present its fields nicely.
 That is show their names and octal and decimal values."
diff --git a/cpio-odc.el b/cpio-odc.el
index 8694919..b9485d2 100644
--- a/cpio-odc.el
+++ b/cpio-odc.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 ;; 
-;; Copyright © 2015, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -20,9 +20,9 @@
 ;; 
 
 ;; Author: Douglas Lewan <address@hidden>
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2015 Jan 03
-;; Version: 0.13β
+;; Version: 0.16β
 ;; Keywords: files
 
 ;;; Commentary:
@@ -53,22 +53,19 @@
 (defvar *cpio-odc-nlink-field-offset*)
 (defvar *cpio-odc-rdev-field-offset*)
 (defvar *cpio-odc-uid-field-offset*)
-(declare-function cpio-contents-start "cpio.el")
-(declare-function cpio-dev-maj "cpio.el")
-(declare-function cpio-entry-attrs-from-catalog-entry "cpio.el")
-(declare-function cpio-entry-name "cpio.el")
-(declare-function cpio-entry-size "cpio.el")
-(declare-function cpio-gid "cpio.el")
-(declare-function cpio-ino "cpio.el")
-(declare-function cpio-mode-value "cpio.el")
-(declare-function cpio-mtime "cpio.el")
-(declare-function cpio-nlink "cpio.el")
-(declare-function cpio-rdev-maj "cpio.el")
-(declare-function cpio-uid "cpio.el")
-(declare-function cpio-entry-attrs "cpio.el")
-
-
-
+(declare-function cpio-contents-start "cpio-mode.el")
+(declare-function cpio-dev-maj "cpio-mode.el")
+(declare-function cpio-entry-attrs-from-catalog-entry "cpio-mode.el")
+(declare-function cpio-entry-name "cpio-mode.el")
+(declare-function cpio-entry-size "cpio-mode.el")
+(declare-function cpio-gid "cpio-mode.el")
+(declare-function cpio-ino "cpio-mode.el")
+(declare-function cpio-mode-value "cpio-mode.el")
+(declare-function cpio-mtime "cpio-mode.el")
+(declare-function cpio-nlink "cpio-mode.el")
+(declare-function cpio-rdev-maj "cpio-mode.el")
+(declare-function cpio-uid "cpio-mode.el")
+(declare-function cpio-entry-attrs "cpio-mode.el")
 ;; EO things for the byte compiler.
 ;;;;;;;;;;;;;;;;
 
diff --git a/cpio-tar.el b/cpio-tar.el
index b9d6332..438467d 100644
--- a/cpio-tar.el
+++ b/cpio-tar.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 ;; 
-;; Copyright © 2015, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
diff --git a/cpio-tests.el b/cpio-tests.el
index c2a08cf..c9cef14 100644
--- a/cpio-tests.el
+++ b/cpio-tests.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 ;; 
-;; Copyright © 2017, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -19,9 +19,9 @@
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;; Author: Douglas Lewan <address@hidden>
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2017 Nov 28
-;; Version: 0.13β
+;; Version: 0.15β
 ;; Keywords: files
 
 ;;; Commentary:
diff --git a/cpio-ustar.el b/cpio-ustar.el
index ba5657c..cef9ec9 100644
--- a/cpio-ustar.el
+++ b/cpio-ustar.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 ;; 
-;; Copyright © 2015, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
diff --git a/cpio-wanted.el b/cpio-wanted.el
index 10de688..27fbc1d 100644
--- a/cpio-wanted.el
+++ b/cpio-wanted.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 ;; 
-;; Copyright © 2015, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -19,9 +19,9 @@
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;; Author: Douglas Lewan <address@hidden>
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2015 Dec 26
-;; Version: 0.13β
+;; Version: 0.16β
 ;; Keywords: files
 
 ;;; Commentary:
diff --git a/stamp-h.in b/stamp-h.in
index 26b4080..e69de29 100644
--- a/stamp-h.in
+++ b/stamp-h.in
@@ -1 +0,0 @@
-#      $Id: stamp-h.in,v 1.2.4.2 2015/04/23 17:33:00 doug Exp $        
diff --git a/test-generic.el b/test-generic.el
index af920ca..47638d0 100644
--- a/test-generic.el
+++ b/test-generic.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 
-;; Copyright © 2017, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -19,9 +19,9 @@
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;; Author: Douglas Lewan (address@hidden)
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2018 Nov 19
-;; Version: 0.13β
+;; Version: 0.16β
 ;; Keywords: files
 
 ;;; Commentary:
@@ -40,6 +40,8 @@
 
 (defvar *cdmt-header-re* ()
   "Variable to hold the format-specific RE to match a header.")
+(setq *cdmt-header-re* ())
+
 ;; These indexes don't seem to be used.
 ;; (defvar *cpio-magic-re-idx* ())
 ;; (defvar *cpio-mode-re-idx* ())
@@ -52,6 +54,8 @@
 ;; (defvar *cpio-filename-re-idx* ())
 
 (defvar *cdmt-archive-format* ())
+(setq *cdmt-archive-format* ())
+
 
 
 (defun cdmt-filter-archive-contents (archive-contents)
@@ -533,6 +537,22 @@ to grab temp- references in sub-directories."
                           "cpio-chksum-re-idx"
                           "cpio-filename-re-idx"
                           "cdmt-archive-format"))
+(setq cdmt-generic-vars (list
+                          "cdmt-small-archive"
+                          "cdmt-large-archive"
+                          "cdmt-header-re"
+
+                          "cpio-magic-re-idx"
+                          "cpio-mode-re-idx"
+                          "cpio-uid-re-idx"
+                          "cpio-gid-re-idx"
+                          "cpio-nlink-re-idx"
+                          "cpio-filesize-re-idx"
+                          "cpio-namesize-re-idx"
+                          "cpio-chksum-re-idx"
+                          "cpio-filename-re-idx"
+                          "cdmt-archive-format"))
+
 
 (defun cdmt-convert-vars (format)
   "Convert all the uses of FORMAT specific vars to their generic counterparts.
@@ -871,6 +891,153 @@ This function respects narrowing."
   (interactive)
   (let ((fname "remove-all-debuggers"))
     (while (remove-debugger))))
+
+(defun find-unused-symbols ()
+  "Look for unused variables (defvar) and functions (defun) in *.el."
+  (interactive)
+  (let ((fname "find-unused-symbols")
+       (vars ())
+       (funs ())
+       (el-files (directory-files "." nil ".+\\.el" nil))
+       (grep-cmd "egrep")
+       (grep-opts "")
+       (buf (get-buffer-create "*symbols*"))
+       (unused-vars ())
+       (unused-funs ())
+       )
+    ;; (error "%s() is not yet implemented" fname)
+    (with-current-buffer buf (erase-buffer))
+    (setq funs (delete-duplicates (sort (gather-funs el-files) 'string-lessp) 
:test 'string-equal))
+    (setq vars (delete-duplicates (sort (gather-vars el-files) 'string-lessp) 
:test 'string-equal))
+
+    
+    ;; (setq el-files (list "cpio-mode.el"))
+    ;; (setq funs (list "unused-fun" "used-fun"))
+    ;; (setq vars (list "unused-var" "used-var"))
+
+
+    (with-current-buffer buf
+      (insert "Functions found:\n")
+      (mapc (lambda (f)
+             (insert "    " f "\n"))
+           funs)
+      )
+    (with-current-buffer buf
+      (insert "Variables found:\n")
+      (mapc (lambda (v)
+             (insert "    " v "\n"))
+           vars)
+      )
+    ;; (pop-to-buffer buf)
+    ;; (goto-char (point-min))
+
+    (mapc (lambda (func)
+               (let ((usedp nil))
+                 (catch 'out
+                   (mapc (lambda (f)
+                           (with-current-buffer (find-file-noselect f)
+                             (save-excursion 
+                               (goto-char (point-min))
+                               (cond ((re-search-forward (concat "^.+(" func) 
(point-max) t)
+                                      (setq usedp t)
+                                      (throw 'out t))
+                                     (t nil)))))
+                         el-files))
+                 (unless usedp
+                   (push func unused-funs))))
+         funs)
+
+    (mapc (lambda (v)
+           (let ((usedp nil))
+             (catch 'out
+               (mapc (lambda (f)
+                       (with-current-buffer (find-file-noselect f)
+                         (save-excursion 
+                           (goto-char (point-min))
+                           (cond ((re-search-forward (concat 
"^[[:blank:]]+.+[[:blank:]]" v) (point-max) t)
+                                  (setq usedp t)
+                                  (throw 'out t))
+                                 (t nil)))))
+                     el-files))
+             (unless usedp
+               (push v unused-vars))))
+         vars)
+
+
+
+
+    (with-current-buffer buf
+      (goto-char (point-max))
+      (insert "\nUnused functions:\n")
+      (mapc (lambda (func)
+             (insert (format "    %s\n" func)))
+           (sort unused-funs 'string-lessp)))
+
+    (with-current-buffer buf
+      (goto-char (point-max))
+      (insert "\nUnused variables:\n")
+      (mapc (lambda (v)
+             (insert (format "    %s\n" v)))
+           (sort unused-vars 'string-lessp)))
+
+    (pop-to-buffer buf)
+    (goto-char (point-min))
+
+    ;; (mapc (lambda (v)
+    ;; (setq grep-cmd (concat grep-cmd " -e '[[:blank:]]+ " v "'")))
+    ;; vars)
+    ;; (mapc (lambda (f)
+    ;; (setq grep-opts (concat grep-opts "-e '[[:blank:]]+(' " f "[[:space:]]" 
" ")))
+    ;; funs)
+    ;; (grep grep-cmd)
+    ))
+(defvar unused-var ())
+
+(defun gather-vars (&optional files)
+  "Return a list of variables (defvar) defined in FILES.
+If FILES is NIL, then look in *.el."
+  (unless files (setq files (directory-files "." nil ".+\\.el" nil)))
+  (let ((fname "gather-vars")
+       (results ())
+       (str)
+       )
+    ;; (error "%s() is not yet implemented" fname)
+    (mapc (lambda (f)
+           (with-current-buffer (find-file-noselect f)
+             (save-excursion
+               (widen)
+               (goto-char (point-min))
+               (while (re-search-forward "^\\(  \\)?(defvar 
\\([[:graph:]]+\\)" (point-max) t)
+                 (setq str (match-string-no-properties 2))
+                 (while (string-match ")\\'" str)
+                   (setq str (substring str 0 -1)))
+                 (push str results)))))
+         files)
+    results
+    ))
+
+(defun gather-funs (&optional files)
+  "Return a list of functions (defun) defined in FILES.
+If FILES is NIL, then look in *.el."
+  (unless files (setq files (directory-files "." nil ".+\\.el" nil)))
+  (let ((fname "gather-funs")
+       (results ())
+       (str)
+       )
+    ;; (error "%s() is not yet implemented" fname)
+    (mapc (lambda (f)
+           (with-current-buffer (find-file-noselect f)
+             (save-excursion
+               (widen)
+               (goto-char (point-min))
+               (while (re-search-forward "^(defun \\([[:graph:]]+\\)" 
(point-max) t)
+                 (setq str (match-string-no-properties 1))
+                 (while (string-match ")\\'" str)
+                   (setq str (substring str 0 -1)))
+                 (push str results)))))
+         files)
+    results
+    ))
 
 (provide 'test-generic)
 ;;; test-generic.el ends here
diff --git a/test_data/alphabet/Makefile.in b/test_data/alphabet/Makefile.in
index b3712c8..325eb02 100644
--- a/test_data/alphabet/Makefile.in
+++ b/test_data/alphabet/Makefile.in
@@ -1,8 +1,7 @@
 # -*- mode: makefile; coding: utf-8 -*-
-#      $Id: Makefile.in,v 1.2 2018/12/03 00:43:40 doug Exp $   
+#      $Id: Makefile.in,v 1.7 2019/01/07 05:27:54 doug Exp $   
 
-# Copyright © 2013, 2014, 2015, 2016, 2017, 2018
-# Douglas Lewan, address@hidden
+# Copyright © 2019 Free Software Foundation, Inc.
 # All rights reserved.
 # 
 # This program is free software: you can redistribute it and/or modify
@@ -39,7 +38,7 @@ SRC_FILES     =       Makefile.in
 # Where things are
 # 
 prefix         =       @prefix@
-distdir                =       
${abs_srcdir}/${PACKAGE}-${PACKAGE_VERSION}/test_data/alphabet
+distdir                =       
${top_srcdir}/${PROJECT}-${PROJECT_VERSION}/test_data/alphabet
 
 # And where they go
 bindir         =       ${prefix}/bin
@@ -87,6 +86,7 @@ man6ext               =       .6
 man7ext                =       .7
 srcdir         =       @srcdir@
 abs_srcdir     =       @abs_srcdir@
+top_srcdir     =       @top_srcdir@
 
 ################################
 # 
@@ -168,49 +168,22 @@ ${LETTERS}:
 # Cpio formats
 #
 .PHONY: all bin crc hpbin hpodc newc odc tar ustar
-all: bin crc hpbin hpodc newc odc tar ustar
+all: bin crc hpbin hpodc newc odc tar ustar links
 # Yes, these regular expressions are a little brittle,
 # but they work in this directory.
-bin:   alphabet
-       ls -1 -d ? ?? ??? ???? ????? ?????.d | grep -v CVS | cpio -o -H 
address@hidden > address@hidden
-       ls -1 -d a aa aaa aaaa aaaaa aaaaa.d b bb bbb bbbb bbbbb bbbbb.d c cc 
ccc cccc ccccc ccccc.d | cpio -o -H address@hidden > address@hidden
-       ls -1 -d a aa aaaaa.d b bb | cpio -o -H address@hidden > address@hidden
-       ls -1 -d a aaaaa.d | cpio -o -H address@hidden > address@hidden
-crc:   alphabet
-       ls -1 -d ? ?? ??? ???? ????? ?????.d | grep -v CVS | cpio -o -H 
address@hidden > address@hidden
-       ls -1 -d a aa aaa aaaa aaaaa aaaaa.d b bb bbb bbbb bbbbb bbbbb.d c cc 
ccc cccc ccccc ccccc.d | cpio -o -H address@hidden > address@hidden
-       ls -1 -d a aa aaaaa.d b bb | cpio -o -H address@hidden > address@hidden
-       ls -1 -d a aaaaa.d | cpio -o -H address@hidden > address@hidden
-hpbin: alphabet
-       ls -1 -d ? ?? ??? ???? ????? ?????.d | grep -v CVS | cpio -o -H 
address@hidden > address@hidden
-       ls -1 -d a aa aaa aaaa aaaaa aaaaa.d b bb bbb bbbb bbbbb bbbbb.d c cc 
ccc cccc ccccc ccccc.d | cpio -o -H address@hidden > address@hidden
-       ls -1 -d a aa aaaaa.d b bb | cpio -o -H address@hidden > address@hidden
-       ls -1 -d a aaaaa.d | cpio -o -H address@hidden > address@hidden
-hpodc: alphabet
-       ls -1 -d ? ?? ??? ???? ????? ?????.d | grep -v CVS | cpio -o -H 
address@hidden > address@hidden
-       ls -1 -d a aa aaa aaaa aaaaa aaaaa.d b bb bbb bbbb bbbbb bbbbb.d c cc 
ccc cccc ccccc ccccc.d | cpio -o -H address@hidden > address@hidden
-       ls -1 -d a aa aaaaa.d b bb | cpio -o -H address@hidden > address@hidden
-       ls -1 -d a aaaaa.d | cpio -o -H address@hidden > address@hidden
-newc:  alphabet 
-       ls -1 -d ? ?? ??? ???? ????? ?????.d | grep -v CVS | cpio -o -H 
address@hidden > address@hidden
-       ls -1 -d a aa aaa aaaa aaaaa aaaaa.d b bb bbb bbbb bbbbb bbbbb.d c cc 
ccc cccc ccccc ccccc.d | cpio -o -H address@hidden > address@hidden
-       ls -1 -d a aa aaaaa.d b bb | cpio -o -H address@hidden > address@hidden
-       ls -1 -d a aaaaa.d | cpio -o -H address@hidden > address@hidden
-odc:   alphabet
-       ls -1 -d ? ?? ??? ???? ????? ?????.d | grep -v CVS | cpio -o -H 
address@hidden > address@hidden
-       ls -1 -d a aa aaa aaaa aaaaa aaaaa.d b bb bbb bbbb bbbbb bbbbb.d c cc 
ccc cccc ccccc ccccc.d | cpio -o -H address@hidden > address@hidden
-       ls -1 -d a aa aaaaa.d b bb | cpio -o -H address@hidden > address@hidden
-       ls -1 -d a aaaaa.d | cpio -o -H address@hidden > address@hidden
-tar:   alphabet
-       ls -1 -d ? ?? ??? ???? ????? ?????.d | grep -v CVS | cpio -o -H 
address@hidden > address@hidden
-       ls -1 -d a aa aaa aaaa aaaaa aaaaa.d b bb bbb bbbb bbbbb bbbbb.d c cc 
ccc cccc ccccc ccccc.d | cpio -o -H address@hidden > address@hidden
-       ls -1 -d a aa aaaaa.d b bb | cpio -o -H address@hidden > address@hidden
-       ls -1 -d a aaaaa.d | cpio -o -H address@hidden > address@hidden
-ustar: alphabet
-       ls -1 -d ? ?? ??? ???? ????? ?????.d | grep -v CVS | cpio -o -H 
address@hidden > address@hidden
-       ls -1 -d a aa aaa aaaa aaaaa aaaaa.d b bb bbb bbbb bbbbb bbbbb.d c cc 
ccc cccc ccccc ccccc.d | cpio -o -H address@hidden > address@hidden
-       ls -1 -d a aa aaaaa.d b bb | cpio -o -H address@hidden > address@hidden
-       ls -1 -d a aaaaa.d | cpio -o -H address@hidden > address@hidden
+archives:
+       ls -1 -d ? ?? ??? ???? ????? ?????.d | grep -v CVS | cpio -o -H 
${archive_format} > alphabet.${archive_format}.cpio
+       ls -1 -d a aa aaa aaaa aaaaa aaaaa.d b bb bbb bbbb bbbbb bbbbb.d c cc 
ccc cccc ccccc ccccc.d | cpio -o -H ${archive_format} > 
alphabet_small.${archive_format}.cpio
+       ls -1 -d a aa aaaaa.d b bb | cpio -o -H ${archive_format} > 
alphabet_tiny.${archive_format}.cpio
+       ls -1 -d a aaaaa.d | cpio -o -H ${archive_format} > 
alphabet_mini.${archive_format}.cpio
+
+bin crc hpbin hpodc newc odc tar ustar: alphabet
+       ${MAKE} address@hidden archives
+
+links: # bin_links crc_links hpbin_links hpodc_links newc_links tar_links 
ustar_links
+       for i in *.cpio ; do                            \
+               ln -s $${i} `basename $${i} .cpio` ;    \
+       done
 
 ################################
 # 
@@ -263,6 +236,12 @@ clean:
                rm $${l} $${l}$${l} $${l}$${l}$${l} $${l}$${l}$${l}$${l} 
$${l}$${l}$${l}$${l}$${l} ;    \
                rmdir $${l}$${l}$${l}$${l}$${l}.d ;                             
                        \
        done
+       for i in * ; do                                                         
                        \
+               if [ -L $${i} ] ; then                                          
                        \
+                       rm -f $${i} ;                                           
                        \
+               fi ;                                                            
                        \
+       done
+
 
 distclean: clean
        -rm -f *~
@@ -294,9 +273,7 @@ dist:       check_gnu distdir
        ${INSTALL} Makefile.in ${distdir}
 
 distdir:       check_gnu
-       test -d ${distdir} || mkdir -o ${distdir}
-
-
+       test -d ${distdir} || mkdir -p ${distdir}
 
 ################################
 # 
@@ -305,3 +282,29 @@ distdir:   check_gnu
 
 info:  nonsense
 
+################
+# 
+# Autoreconfiscation.
+# 
+
+${top_srcdir}/configure: ${top_srcdir}/configure.ac # aclocal.m4
+       cd '${top_srcdir}' && autoconf
+
+# autoheader might not change config.h.in, so touch a stamp file.
+# ${top_srcdir}/config.h.in: stamp-h.in
+${top_srcdir}/stamp-h.in: ${top_srcdir}/configure.ac # aclocal.m4
+       cd '${top_srcdir}' # && autoheader
+       echo timestamp > '${top_srcdir}/stamp-h.in'
+
+${top_srcdir}/config.h: ${top_srcdir}/stamp-h
+${top_srcdir}/stamp-h: ${top_srcdir}/config.h.in ${top_srcdir}/config.status
+       cd '${top_srcdir}' ;            \
+       ./config.status
+
+Makefile: Makefile.in ${top_srcdir}/config.status
+       cd '${top_srcdir}' ;            \
+       ./config.status
+
+${top_srcdir}/config.status: ${top_srcdir}/configure
+       cd '${top_srcdir}' ;            \
+       ./config.status --recheck
diff --git a/ttt.el b/ttt.el
index ace3fc4..ba136ce 100644
--- a/ttt.el
+++ b/ttt.el
@@ -2,7 +2,7 @@
 
 ;; COPYRIGHT
 
-;; Copyright © 2017, 2018, 2019 Douglas Lewan, address@hidden
+;; Copyright © 2019 Free Software Foundation, Inc.
 ;; All rights reserved.
 ;; 
 ;; This program is free software: you can redistribute it and/or modify
@@ -19,9 +19,9 @@
 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 ;; Author: Douglas Lewan (address@hidden)
-;; Maintainer: -- " --
+;; Maintainer: Douglas Lewan <address@hidden>
 ;; Created: 2018 Nov 27
-;; Version: 0.13β
+;; Version: 0.15β
 ;; Keywords: files
 
 ;;; Commentary:



reply via email to

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