Table of contents
vvencode and vvdecode - {en/de}code a file in a portable character set
vvdecode
[
-debug
]
[
-encoding_table file-spec
]
[
-format file-format
(formats supported: stream)
]
[
-help
]
[
-index_file file-spec
]
[
-log [file-spec]
]
[
-mode file-mode
(modes supported: binary text)
]
[
-overwrite
]
[
-pad_character decimal-char-value
]
[
-record_length bytes
]
[
-timestamp [time]
]
[
-translation_file file-spec
]
[
-uudecode
]
[
-xxdecode
]
input_file
[
output_file or >output_file
]
vvencode
[
-debug
]
[
-encoding_table file-spec
]
[
-format file-format
(formats supported: stream) ]
[
-header_filespec file-spec
]
[
-help
]
[
-log [file-spec]
]
[
-mode file-mode
(modes supported: binary text)
]
[
-overwrite
]
[
-record_length bytes
]
[
-split_size kbytes
]
[
-timestamp [time]
]
[
-translation_file file-spec
]
input_file
[
output_file
]
Either, or both, of the input and output files may
be specified as a minus (`-'), which represents
standard input and output respectively, allowing
these programs to be used as UNIX filters.
vvencode
encodes its input file along with the file name
and file attributes into a 32-bit CRC checksummed
output file using a portable character set that is
immune to electronic mail corruption and blank
trimming.
vvdecode
decodes the output of
vvencode,
restoring the file name and attributes, and
verifying the checksum.
This encoding is superior to that of the
commonly-used
uuencode(1)
and
uudecode(1)
utilities, because the encoding character set
avoids characters that are known to be corrupted,
or deleted, by some electronic mail gateways, and
because the inclusion of a checksum enables
corruption to be detected. In addition, the
inclusion of a translation table in the output of
vvencode
permits
vvdecode
to recover from character transliteration (but
not
from many-to-one character remappings).
The inclusion of file attributes in the encoding
makes it possible to support file systems such as
those on DEC VMS and IBM VM/CMS in which files are
not just the simple byte streams of UNIX and IBM
PC DOS, but have file attributes (e.g. text
vs. binary, fixed-length records vs.
variable-length records, record length, etc.)
that must be preserved when a file is transferred
from one system to another of the same type.
Extended on-line documentation for
vvencode
and
vvdecode
may be available in the GNU Emacs info system, or
via the standalone
xinfo
program, if your site has them installed.
Complain to your system manager if you cannot find
them.
Command-line switches may be abbreviated to a
unique leading prefix, and letter case is
not
significant. All options are parsed before any
input files are read.
For those options which take values, the value may
be provided as the next command-line argument, or
included in the same argument, separated from the
switch name by a (protected) space, equals sign,
or colon. Thus,
-log foo.log,
-log\ foo.log,
-log=foo.log,
and
-log:foo.log
are equivalent.
-
-debug
-
Turn on verbose debug output on the
stderr
stream. This can be useful to see what file
attributes are encoded, to diagnose a corrupted
encoded file, and to report a bug to the author.
-
-encoding_table file-spec
-
Define an alternate character set encoding in the
form of a file containing a single line of 64
characters to be used for the encoding. The
default encoding is the set of characters
plus(+),
minus(-),
digits(0-9),
lower-case letters(a-z),
and
upper-case letters(A-Z),
in that order.
-
-format file-format
-
Specify the file format to be used, overriding the
format determined automatically. On systems
like UNIX and IBM PC DOS, files are transparent
byte streams, and this option is not useful. Possible
values are
fixed,
stream,
and
variable.
-
-header_filespec file-spec
-
(vvencode only).
Specify an alternate file name to be used in the
output encoding in place of the
input_file
name.
-
-help
-
Display a short summary of the recognized
command-line options, and then exit without
further processing. If
vvdecode
or
vvencode
are invoked without any command-line arguments,
they display this help summary.
-
-index_file file-spec
-
(vvdecode only).
[MORE NEEDED]
-
-log [file-spec]
-
Specify an alternate output file. On systems that
support command-line redirection of standard
output (IBM PC DOS and UNIX), this option
overrides any redirection, and any file name in an
encoded input file.
-
-mode file-mode
-
Specify the file mode to be used, overriding the
mode determined automatically.
The value supplied must be either
binary
or
text.
-
-overwrite
-
vvdecode
or
vvencode
check for a pre-existing output file, and ask
whether you want to overwrite it. This option
requests that the output file be silently
overwritten.
-
-pad_character decimal-char-value
-
(vvdecode only).
[MORE NEEDED]
-
-record_length bytes
-
On file systems for which record lengths are
significant, this option specifies the output file
record length, overriding any that might be
encoded in the input file.
-
-split_size kbytes
-
(vvencode only).
Split the encoded output file into pieces of no
more than the specified size, an integer number of
kilobytes. The file names are constructed by
taking the base name of the output file or
-log
file specification, and adding extensions
v01,
v02,
v03, ...
Use this to work around limitations on electronic
mail message sizes, or for splitting a large file
into fragments that will conveniently fit on
low-capacity storage media, such as floppy
diskettes.
All that is needed to recover the original file
is to concatenate the pieces, in
any
order, and supply that concatenation as the input
to
vvdecode.
It is
not
necessary to strip mail headers before doing this.
-
-timestamp [time]
-
Provide an alternate file time stamp recorded in
the output of
vvencode,
or in the file system for the output of
vvdecode.
This must be in the form
1991.02.15-16:12:32
giving the year, month, day, hour, minute, and second.
-
-translation_file file-spec
-
[MORE NEEDED]
-
-uudecode
-
(vvdecode only).
Decode a file encoded by
uue(1)
or
uuencode(1).
The output of those programs is not unfortunately
not sufficiently distinctive to allow this
recognition to be automatic.
-
-xxdecode
-
(vvdecode only).
Decode a file encoded by
xxencode(1).
The output of
xxencode
is not unfortunately not sufficiently distinctive
to allow this recognition to be automatic.
[MORE NEEDED]
bsplit(1),
split(1),
uud(1),
uudecode(1),
uudecode(5),
uue(1),
uuencode(1),
uuencode(5),
xxdecode(1),
xxencode(1).
Source code:
C Niel Kempson
Snowy Owl Systems Limited
25 Whitethorn Drive
Cheltenham, GL52 5LL
England
Telephone/Fax: 0242-579105 (UK), +44-242-579105 (International)
E-mail: kempson@snowyowl.co.uk (Internet)
UNIX manual pages:
Nelson H. F. Beebe
Center for Scientific Computing
Department of Mathematics
University of Utah
Salt Lake City, UT 84112
USA
Tel: +1 801 581 5254
FAX: +1 801 581 4148
Email: <beebe@math.utah.edu> (Internet)
The complete source code and documentation for
vvdecode
and
vvencode,
plus binary executables for several systems, is
freely available. Implementations exist for at
least these systems:
-
¤
-
IBM PC DOS
-
¤
-
IBM PC OS/2
-
¤
-
UNIX (most variants)
-
¤
-
DEC VAX VMS
-
¤
-
IBM VM/CMS.
Use anonymous ftp access to the Internet host
tex.ac.uk
in the directory
[tex-archive.archive-tools.vvcode],
or send electronic mail to
List_Server@TeX.Ac.Uk
with the subject text
HELP VVCODE.
Other Internet hosts participating in the
Comprehensive TeX Archive Network (CTAN) should
also have copies of this software. These hosts
include
ftp.uni-stuttgart.de
(directory
/pub/tex/tools/vvcode)
in Stuttgart, Germany,
and
pip.shsu.edu
(directory
/tex-archive/tools/vvcode)
in Huntsville, Texas, USA.