arc-mode

Homepage: https://www.gnu.org/software/emacs

Author: Morten Welinder

Summary

Simple editing of archives

Commentary

NAMING: "arc" is short for "archive" and does not refer specifically
to files whose name end in ".arc"

This code does not decode any files internally, although it does
understand the directory level of the archives.  For this reason,
you should expect this code to need more fiddling than tar-mode.el
(although it at present has fewer bugs :-)  In particular, I have
not tested this under MS-DOS myself.
-------------------------------------
INTERACTION: arc-mode.el should play together with

* ange-ftp.el: Remote archives (i.e., ones that ange-ftp has brought
               to you) are handled by doing all updates on a local
               copy.  When you make changes to a remote file the
               changes will first take effect when the archive buffer
               is saved.  You will be warned about this.

* dos-fns.el:  You get automatic ^M^J <--> ^J conversion.

arc-mode.el does not work well with crypt++.el; for the archives as
such this could be fixed (but wouldn't be useful) by declaring such
archives to be "remote".  For the members this is a general Emacs
problem that 19.29's file formats may fix.
-------------------------------------
ARCHIVE TYPES: Currently only the archives below are handled, but the
structure for handling just about anything is in place.

			Arc	Lzh	Zip	Zoo	Rar	7z	Ar	Squashfs
			---------------------------------------------------------------
View listing		Intern	Intern	Intern	Intern	Y	Y	Y	Y
Extract member	Y	Y	Y	Y	Y	Y	Y	Y
Save changed member	Y	Y	Y	Y	N	Y	Y	N
Add new member	N	N	N	N	N	N	N	N
Delete member	Y	Y	Y	Y	N	Y	N	N
Rename member	Y	Y	N	N	N	N	N	N
Chmod		-	Y	Y	-	N	N	N	N
Chown		-	Y	-	-	N	N	N	N
Chgrp		-	Y	-	-	N	N	N	N

Special thanks to Bill Brodie  for very useful tips
on the first released version of this package.

This code is partly based on tar-mode.el from Emacs.
-------------------------------------
ARCHIVE STRUCTURES:
(This is mostly for myself.)

ARC         A series of (header,file).  No interactions among members.

LZH         A series of (header,file).  Headers are checksummed.  No
            interaction among members.
            Headers come in three flavors called level 0, 1 and 2 headers.
            Level 2 header is free of DOS specific restrictions and most
            commonly used.  Also level 1 and 2 headers consist of base
            and extension headers.  For more details see
            http://homepage1.nifty.com/dangan/en/Content/Program/Java/jLHA/Notes/Notes.html
            http://www.osirusoft.com/joejared/lzhformat.html

ZIP         A series of (lheader,fil) followed by a "central directory"
            which is a series of (cheader) followed by an end-of-
            central-dir record possibly followed by junk.  The e-o-c-d
            links to c-d.  cheaders link to lheaders which are basically
            cut-down versions of the cheaders.

ZOO         An archive header followed by a series of (header,file).
            Each member header points to the next.  The archive is
            terminated by a bogus header with a zero next link.
-------------------------------------
HOOKS: `foo' means one of the supported archive types.

archive-mode-hook
archive-foo-mode-hook
archive-extract-hook

Dependencies

Reverse dependencies