yydecode(1) decode yEnc encoded files


yydecode [-b|--write-broken] [-r|--remove-broken] [-e|--evil-filenames] [-f|--force-overwrite] [-l|--large-parts] [-o|--output-file=FILE] [-v|--verbose] FILE ...
yydecode [-h|--help]
yydecode [-V|--version]



started life as a decoder for yEnc encoded binaries, which have recently appeared on Usenet. yydecode works almost identically to the infamous uudecode program. Version 0.2.8 and onwards contains a superset of uudecode's functionality, (ie. decodes standard uuencoded files, as well as Base64 [RFC2045] encoded files produced by uuencode) and hence can be used as a drop-in replacement in all circumstances.


Given a selection of parts saved by your newsreader across msg-1.txt, msg-2.txt and msg-3.txt, any of the following (plus many more variations on the incantation) will correctly decode the file(s):

$ yydecode msg-1.txt msg-2.txt msg-3.txt
$ cat msg-1.txt msg-2.txt msg-3.txt | yydecode


Direct all output to FILE (use "-" for stdout). See BUGS below.
Write output files to DIR instead of the current working directory.
Allow evil filenames with e.g. high ASCII and shell metacharacters. Use twice to allow any character. (DANGEROUS!) Otherwise, any such characters are converted to an underscore ("_").
Append a counter to the filename if it already exists. Has no effect if --force-overwrite is also used.
Overwrite (truncate) the output file, if it exists. Behaves differently when used in conjunction with --write-broken.
Write decoded parts even if they are verified to be broken. The output file will not be renamed to file.broken.

When used in conjunction with --force-overwrite, the output file will not be truncated. Thus one can decode e.g. a two part multi-part file in stages by invoking:

$ yydecode -f -b msg-1.txt ; yydecode -f -b msg-2.txt

Note that yydecode cannot check for missing parts when used in this way. This is intended to allow one to preview certain media files which may be usable without being complete.

For uuencoded files, this option causes short lines not to be padded, and overlong ones not to be truncated. Be aware that the file will be zero padded up to a multiple of three bytes when used with output generated by most implementations (e.g. GNU sharutils) of uuencode that output more characters than strictly necessary.

-i, --broken-encoder
Certain encoders outputs a file CRC of 00000001 regardless of the actual input. This option tells yydecode to ignore such CRCs, and issue a warning. Please pester the sender to upgrade their software if you see this.
Remove instead of renaming broken files. When used in conjunction with --write-broken, yydecode renames the file instead.
Expect parts larger than 8192k (changable at compile-time). Because yydecode decodes each part in memory before writing it to disk, it needs to allocate enough memory to hold each part. There is a soft limit of 8192k to guard against parts with broken headers which specify ridiculously large part sizes. This switch disables the check.
Display a short help message, and exit.
Increase verbosity.
Print the version information, and exit.


When using --output-file with stdout ("-"), data is written in the order in which it is received; no attempt is made to reorder the encoded input. When used with a file output, only the first encoded file encountered will be decoded -- subsequent ones will fail with an error complaining about the existing output file. There is no intention to fix this.


Copyright © 2002-2003, Liyang Hu <[email protected]>, http://nerv.cx/liyang/

This manual page was initially written by Itai Zukerman <[email protected]> for the Debian GNU/Linux system. It is currently maintained by the program author.