Table of contents


NAME

vvencode and vvdecode - {en/de}code a file in a portable character set

SYNOPSIS

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.


DESCRIPTION

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.


OPTIONS

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.

FILES

[MORE NEEDED]

SEE ALSO

bsplit(1), split(1), uud(1), uudecode(1), uudecode(5), uue(1), uuencode(1), uuencode(5), xxdecode(1), xxencode(1).

AUTHOR

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)

SOURCE CODE AVAILABILITY

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.