Ravel and unravel pack and unpack mime-encoded messages. I wrote these for Mastodon Linux because the exiting mime packers and unpackers seemed to be too complicated for such a simple spec. A few dozen code revisions later, I realized my mistake. But here they are; I've grown used to them, and prefer them to the traditional standards.
1.2 — codenamed ‘superfussy’ —
is a massively cleaned up version that improves on the
cleanups in version 1.1.1 plus has more and better documentation
and a few additional features.
I've added the -c
(extract files to current directory) and -f (overwrite
files) options, documented them, added a
README describing the package,
and added an
INSTALL document which, in
about the tersest way possible, attempts to tell you how
to install it.
For completeness, I've complemented uudecode with a uuencode
program (providing both base64 and uuencode formats,) based
on code from 4.4bsd.
To wall off my uuencode/uudecode from any that might already be on the system, I've added the
--enable-uuencodeflag toconfigure.shso you need to really want the uu family before you get it.
1.1.1 is a cleanup version of the 1.1;
I went in and did a generalized cleanup of the manpages, the
build process, and the install process. Version 1.1.1 now
uuencode manpage [a lightly edited version of the BSD
page], has the other manpages redone from the USG (.TH/.SH/&tc)
to the newer -mandoc style that BSD uses, has been lightly edited
to use my standard method of carrying around a program name
(global char* pgm;, populated by pgm=basename?basename():strrchr())
and to have the arguments to ->encode()
and ->decode() cast to the mimeread and mimewrite types,
and, finally, has a version of configure.sh
that tries to look for the existance of $prefix/share/man
so it can put the manpages there instead of $prefix/man.
Amazingly, none of this appears to have actually broken the rest of the code.
1.1, codenamed Rip Van Winkle, was provoked by trying — after a several-year interval — to run the program on a new machine. It didn’t work, and when I looked at the code I realized that there were parts in it that were pretty much guaranteed to NEVER work. So I've ripped out the guts of the program and restructured it, and now it appears to run on Mastodon, MacOS, and FreeBSD.
1.0 was ripped out of the Mastodon toolkit and stuffed into its own little tarball. These compile (for some version of “compile”) on FreeBSD 4.8 and Mastodon INST0067, unlike the old code that wouldn’t compile anywhere except in the Mastodon build tree.