uuencode(3tcl) Text encoding & decoding binary data uuencode(3tcl)
______________________________________________________________________________
NAME
uuencode - UU-encode/decode binary data
SYNOPSIS
package require Tcl 8
package require uuencode ?1.1.4?
::uuencode::encode string
::uuencode::decode string
::uuencode::uuencode ?-name string? ?-mode octal? (-file filename |
?--? string)
::uuencode::uudecode (-file filename | ?--? string)
______________________________________________________________________________
DESCRIPTION
This package provides a Tcl-only implementation of the uuencode(1) and
uudecode(1) commands. This encoding packs binary data into printable
ASCII characters.
::uuencode::encode string
returns the uuencoded data. This will encode all the data passed
in even if this is longer than the uuencode maximum line length.
If the number of input bytes is not a multiple of 3 then addi-
tional 0 bytes are added to pad the string.
::uuencode::decode string
Decodes the given encoded data. This will return any padding
characters as well and it is the callers responsibility to deal
with handling the actual length of the encoded data. (see uuen-
code).
::uuencode::uuencode ?-name string? ?-mode octal? (-file filename |
?--? string)
::uuencode::uudecode (-file filename | ?--? string)
UUDecode 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, mode value and data.
OPTIONS
-filename name
Cause the uuencode or uudecode commands to read their data from
the named file rather that taking a string parameter.
-name string
The uuencoded 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".
-mode octal
The uuencoded data header line contains a suggested permissions
bit pattern expressed as an octal string. To change the default
of 0644 you can set this option. For instance, 0755 would be
suitable for an executable. See chmod(1).
EXAMPLES
% set d [uuencode::encode "Hello World!"]
2&5L;&\\@5V]R;&0A
% uuencode::uudecode $d
Hello World!
% set d [uuencode::uuencode -name hello.txt "Hello World"]
begin 644 hello.txt
+2&5L;&\@5V]R;&0`
`
end
% uuencode::uudecode $d
{hello.txt 644 {Hello World}}
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, uuencode
CATEGORY
Text processing
COPYRIGHT
Copyright (c) 2002, Pat Thoyts
tcllib 1.1.4 uuencode(3tcl)