yencode(3tcl) Text encoding & decoding binary data yencode(3tcl)
______________________________________________________________________________
NAME
yencode - Y-encode/decode binary data
SYNOPSIS
package require Tcl 8.2
package require yencode ?1.1.2?
::yencode::encode string
::yencode::decode string
::yencode::yencode ?-name string? ?-line integer? ?-crc32 boolean?
(-file filename | ?--? string)
::yencode::ydecode (-file filename | ?--? string)
______________________________________________________________________________
DESCRIPTION
This package provides a Tcl-only implementation of the yEnc file encod-
ing. This is a recently introduced method of encoding binary files for
transmission through Usenet. This encoding packs binary data into a
format that requires an 8-bit clean transmission layer but that escapes
characters special to the NNTP posting protocols. See
http://www.yenc.org/ for details concerning the algorithm.
::yencode::encode string
returns the yEnc encoded data.
::yencode::decode string
Decodes the given yEnc encoded data.
::yencode::yencode ?-name string? ?-line integer? ?-crc32 boolean?
(-file filename | ?--? string)
Encode a file or block of data.
::yencode::ydecode (-file filename | ?--? string)
Decode a file or block of data. A file may contain more than one
embedded file so the result is a list where each element is a
three element list of filename, file size and data.
OPTIONS
-filename name
Cause the yencode or ydecode commands to read their data from
the named file rather that taking a string parameter.
-name string
The encoded data header line contains the suggested file name to
be used when unpacking the data. Use this option to change this
from the default of "data.dat".
-line integer
The yencoded data header line contains records the line length
used during the encoding. Use this option to select a line
length other that the default of 128. Note that NNTP imposes a
1000 character line length limit and some gateways may have
trouble with more than 255 characters per line.
-crc32 boolean
The yEnc specification recommends the inclusion of a cyclic re-
dundancy check value in the footer. Use this option to change
the default from true to false.
% set d [yencode::yencode -file testfile.txt]
=ybegin line=128 size=584 name=testfile.txt
-o- data not shown -o-
=yend size=584 crc32=ded29f4f
REFERENCES
[1] http://www.yenc.org/yenc-draft.1.3.txt
BUGS, IDEAS, FEEDBACK
This document, and the package it describes, will undoubtedly contain
bugs and other problems. Please report such in the category base64 of
the Tcllib Trackers [http://core.tcl.tk/tcllib/reportlist]. Please
also report any ideas for enhancements you may have for either package
and/or documentation.
When proposing code changes, please provide unified diffs, i.e the out-
put of diff -u.
Note further that attachments are strongly preferred over inlined
patches. Attachments can be made by going to the Edit form of the
ticket immediately after its creation, and then using the left-most
button in the secondary navigation bar.
KEYWORDS
encoding, yEnc, ydecode, yencode
CATEGORY
Text processing
COPYRIGHT
Copyright (c) 2002, Pat Thoyts
tcllib 1.1.2 yencode(3tcl)