Provided by: tcllib_1.19-dfsg-2_all bug

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  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.

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 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

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 output 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