


yencode(n)     Text encoding & decoding binary data    yencode(n)


______________________________________________________________________________

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



base64                        1.1.2                             1





yencode(n)     Text encoding & decoding binary data    yencode(n)


       -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         SF         Trackers          [http://source-
       forge.net/tracker/?group_id=12883].   Please  also report any ideas for
       enhancements you may have for either package and/or documentation.

KEYWORDS
       encoding, yEnc, ydecode, yencode

CATEGORY
       Text processing

COPYRIGHT
       Copyright (c) 2002, Pat Thoyts


















base64                        1.1.2                             2


