@node uuencode Invocation
@section Invoking uuencode
@pindex uuencode
@cindex encode a file into email friendly text
@ignore
#  -*- buffer-read-only: t -*- vi: set ro:
#
# DO NOT EDIT THIS FILE   (invoke-uuencode.texi)
#
# It has been AutoGen-ed
# From the definitions    uuencode-opts.def
# and the template file   agtexi-cmd.tpl
@end ignore
@file{uuencode} is used to create an ASCII representation of a file
that can be sent over channels that may otherwise corrupt the data.
Specifically, email cannot handle binary data and will often even
insert a character when the six character sequence "\nFrom " is seen.

@file{uuencode} will read @file{in-file} if provided and otherwise
read data from standard in and write the encoded form to standard out.
The output will begin with a header line for use by @file{uudecode}
giving it the resulting suggested file @file{output-name} and access
mode.  If the @file{output-name} is specifically @file{/dev/stdout},
then @file{uudecode} will emit the decoded file to standard out.

@strong{Note}: @file{uuencode} uses buffered input and assumes that it
is not hand typed from a tty.  The consequence is that at a tty, you
may need to hit Ctl-D several times to terminate input.

This section was generated by @strong{AutoGen},
using the @code{agtexi-cmd} template and the option descriptions for the @code{uuencode} program.
This software is released under the GNU General Public License, version 3 or later.

@menu
* uuencode usage::                  uuencode help/usage (@option{--help})
* uuencode base64::                 base64 option (-m)
* uuencode encode-file-name::       encode-file-name option (-e)
* uuencode config::                 presetting/configuring uuencode
* uuencode exit status::            exit status
* uuencode Bugs::                   Bugs
* uuencode Standards::              Standards
* uuencode History::                History
* uuencode See Also::               See Also
@end menu

@node uuencode usage
@subsection uuencode help/usage (@option{--help})
@cindex uuencode help

This is the automatically generated usage text for uuencode.

The text printed is the same whether selected with the @code{help} option
(@option{--help}) or the @code{more-help} option (@option{--more-help}).  @code{more-help} will print
the usage text by passing it through a pager program.
@code{more-help} is disabled on platforms without a working
@code{fork(2)} function.  The @code{PAGER} environment variable is
used to select the program, defaulting to @file{more}.  Both will exit
with a status code of 0.

@exampleindent 0
@example
uuencode (GNU sharutils) - encode a file into email friendly text
Usage:  uuencode [ -<flag> | --<name> ]... [<in-file>] <output-name>

   -m, --base64               convert using base64
   -e, --encode-file-name     encode the output file name
   -v, --version[=MODE]       output version information and exit
   -h, --help                 display extended usage information and exit
   -!, --more-help            extended usage information passed thru pager
   -R, --save-opts[=FILE]     save the option state to a config file FILE
   -r, --load-opts=FILE       load options from the config file FILE
                                - disabled with '--no-load-opts'
                                - may appear multiple times

Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.

The following option preset mechanisms are supported:
 - reading file $HOME/.sharrc

'uuencode' is used to create an ASCII representation of a file that can be
sent over channels that may otherwise corrupt the data.  Specifically,
email cannot handle binary data and will often even insert a character when
the six character sequence "\nFrom " is seen.

'uuencode' will read 'in-file' if provided and otherwise read data from
standard in and write the encoded form to standard out.  The output will
begin with a header line for use by 'uudecode' giving it the resulting
suggested file 'output-name' and access mode.  If the 'output-name' is
specifically '/dev/stdout', then 'uudecode' will emit the decoded file to
standard out.

'Note': 'uuencode' uses buffered input and assumes that it is not hand
typed from a tty.  The consequence is that at a tty, you may need to hit
Ctl-D several times to terminate input.

Please send bug reports to:  <bug-gnu-utils@@gnu.org>
@end example
@exampleindent 4

@node uuencode base64
@subsection base64 option (-m)
@cindex uuencode-base64

This is the ``convert using base64'' option.
By default, @file{uuencode} will encode using the traditional
conversion.  It is slower and less compact than base64.
The encoded form of the file is expanded by 37% for UU encoding
and by 35% for base64 encoding (3 bytes become 4 plus control
information).
@node uuencode encode-file-name
@subsection encode-file-name option (-e)
@cindex uuencode-encode-file-name

This is the ``encode the output file name'' option.
Since output file names may contain characters that are not
handled well by various transmission modes, you may specify
that the @file{output-name} be base64 encoded as well.
(Traditional uuencoding of the file name is not supported.)


@node uuencode config
@subsection presetting/configuring uuencode

Any option that is not marked as @i{not presettable} may be preset by
loading values from configuration ("rc" or "ini") files.


@noindent
@code{libopts} will search in @file{$HOME} for configuration (option) data.
The environment variable @code{HOME, } is expanded and replaced when
the program runs
If this is a plain file, it is simply processed.
If it is a directory, then a file named @file{.sharrc} is searched for within that directory.

Configuration files may be in a wide variety of formats.
The basic format is an option name followed by a value (argument) on the
same line.  Values may be separated from the option name with a colon,
equal sign or simply white space.  Values may be continued across multiple
lines by escaping the newline with a backslash.

Multiple programs may also share the same initialization file.
Common options are collected at the top, followed by program specific
segments.  The segments are separated by lines like:
@example
[UUENCODE]
@end example
@noindent
or by
@example
<?program uuencode>
@end example
@noindent
Do not mix these styles within one configuration file.

Compound values and carefully constructed string values may also be
specified using XML syntax:
@example
<option-name>
   <sub-opt>...&lt;...&gt;...</sub-opt>
</option-name>
@end example
@noindent
yielding an @code{option-name.sub-opt} string value of
@example
"...<...>..."
@end example
@code{AutoOpts} does not track suboptions.  You simply note that it is a
hierarchicly valued option.  @code{AutoOpts} does provide a means for searching
the associated name/value pair list (see: optionFindValue).

The command line options relating to configuration and/or usage help are:

@subsubheading version (-v)

Print the program version to standard out, optionally with licensing
information, then exit 0.  The optional argument specifies how much licensing
detail to provide.  The default is to print the license name with the version.  The licensing infomation may be selected with an option argument.
Only the first letter of the argument is examined:

@table @samp
@item version
Only print the version.
@item copyright
Name the copyright usage licensing terms.  This is the default.
@item verbose
Print the full copyright usage licensing terms.
@end table

@node uuencode exit status
@subsection uuencode exit status

One of the following exit values will be returned:
@table @samp
@item 0 (EXIT_SUCCESS)
Successful program execution.
@item 1 (EXIT_FAILURE)
The operation failed or the command syntax was not valid.
@item 66 (EX_NOINPUT)
A specified configuration file could not be loaded.
@item 70 (EX_SOFTWARE)
libopts had an internal operational error.  Please report
it to autogen-users@@lists.sourceforge.net.  Thank you.
@end table
@node uuencode Bugs
@subsection uuencode Bugs
Please put @samp{sharutils} in the subject line for emailed bug
reports.  It helps to spot the message.
@node uuencode Standards
@subsection uuencode Standards
This implementation is compliant with P1003.2b/D11.
@node uuencode History
@subsection uuencode History
The @command{uuencode} command first appeared in BSD 4.0.
@node uuencode See Also
@subsection uuencode See Also
uudecode(1), uuencode(5)
