[//000000001]: # (yencode \- Text encoding & decoding binary data)
[//000000002]: # (Generated from file 'yencode\.man' by tcllib/doctools with format 'markdown')
[//000000003]: # (Copyright © 2002, Pat Thoyts)
[//000000004]: # (yencode\(n\) 1\.1\.2 tcllib "Text encoding & decoding binary data")
[ Main Table Of Contents | Table Of Contents | Keyword Index | Categories | Modules | Applications ]
# NAME
yencode \- Y\-encode/decode binary data
# Table Of Contents
- [Table Of Contents](#toc)
- [Synopsis](#synopsis)
- [Description](#section1)
- [OPTIONS](#section2)
- [References](#section3)
- [Bugs, Ideas, Feedback](#section4)
- [Keywords](#keywords)
- [Category](#category)
- [Copyright](#copyright)
# SYNOPSIS
package require Tcl 8\.2
package require yencode ?1\.1\.2?
[__::yencode::encode__ *string*](#1)
[__::yencode::decode__ *string*](#2)
[__::yencode::yencode__ ?__\-name__ *string*? ?__\-line__ *integer*? ?__\-crc32__ *boolean*? \(__\-file__ *filename* | ?__\-\-__? *string*\)](#3)
[__::yencode::ydecode__ \(__\-file__ *filename* | ?__\-\-__? *string*\)](#4)
# 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](\.\./\.\./\.\./\.\./index\.md\#nntp)* posting protocols\. See
[http://www\.yenc\.org/](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](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](\.\./\.\./\.\./\.\./index\.md\#encoding),
[yEnc](\.\./\.\./\.\./\.\./index\.md\#yenc),
[ydecode](\.\./\.\./\.\./\.\./index\.md\#ydecode),
[yencode](\.\./\.\./\.\./\.\./index\.md\#yencode)
# CATEGORY
Text processing
# COPYRIGHT
Copyright © 2002, Pat Thoyts