\section{\module{binhex} ---
         Encode and decode binhex4 files}

\declaremodule{standard}{binhex}
\modulesynopsis{Encode and decode files in binhex4 format.}


This module encodes and decodes files in binhex4 format, a format
allowing representation of Macintosh files in \ASCII.  On the Macintosh,
both forks of a file and the finder information are encoded (or
decoded), on other platforms only the data fork is handled.

The \module{binhex} module defines the following functions:

\begin{funcdesc}{binhex}{input, output}
Convert a binary file with filename \var{input} to binhex file
\var{output}. The \var{output} parameter can either be a filename or a
file-like object (any object supporting a \method{write()} and
\method{close()} method).
\end{funcdesc}

\begin{funcdesc}{hexbin}{input\optional{, output}}
Decode a binhex file \var{input}. \var{input} may be a filename or a
file-like object supporting \method{read()} and \method{close()} methods.
The resulting file is written to a file named \var{output}, unless the
argument is omitted in which case the output filename is read from the
binhex file.
\end{funcdesc}

The following exception is also defined:

\begin{excdesc}{Error}
Exception raised when something can't be encoded using the binhex
format (for example, a filename is too long to fit in the filename
field), or when input is not properly encoded binhex data.
\end{excdesc}


\begin{seealso}
  \seemodule{binascii}{Support module containing \ASCII-to-binary
                       and binary-to-\ASCII{} conversions.}
\end{seealso}


\subsection{Notes \label{binhex-notes}}

There is an alternative, more powerful interface to the coder and
decoder, see the source for details.

If you code or decode textfiles on non-Macintosh platforms they will
still use the Macintosh newline convention (carriage-return as end of
line).

As of this writing, \function{hexbin()} appears to not work in all
cases.
