yencode -
Y-encode/decode binary data
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)
This package provides a Tcl-only implementation of the yEnc file
encoding. 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.
- -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 redundancy
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
- http://www.yenc.org/yenc-draft.1.3.txt
This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category
base64 of the
http://sourceforge.net/tracker/?group_id=12883.
Please also report any ideas for enhancements you may have for either
package and/or documentation.
encoding, yEnc, yencode, ydecode