This file documents the Emacs MIME interface functionality.
-Copyright (C) 1998,99,2000 Free Software Foundation, Inc.
+Copyright (C) 1998,99,2000, 2002 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
@page
@vskip 0pt plus 1filll
-Copyright @copyright{} 1998,99,2000 Free Software Foundation, Inc.
+Copyright @copyright{} 1998,99,2000, 2002 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
be chosen.
@vindex mail-parse-charset
-If you are running a non-Mule Emacs, this process is simple: if the part
+@cindex unibyte Emacs
+If you are running a non-Mule XEmacs, or Emacs in unibyte
+mode@footnote{Deprecated!}, this process is simple: if the part
contains any non-@sc{ascii} (8-bit) characters, the @sc{mime} charset
given by @code{mail-parse-charset} (a symbol) is used. (Never set this
variable directly, though. If you want to change the default charset,
@sc{ascii} characters, the @sc{mime} charset @samp{US-ASCII} is used, of
course.
-@cindex Mule
-@cindex UTF-8
-@cindex Unicode
+@cindex multibyte Emacs
+@cindex @code{mime-charset} property
+In a normal (multibyte) Emacs session, a list of coding systems is
+derived that can encode the message part's content and correspond to
+MIME charsets (according to their @code{mime-charset} property). This
+list is according to the normal priority rules and the highest priority
+one is chosen to encode the part. If no such coding system can encode
+the part's contents, they are split into several parts such that each
+can be encoded with an appropriate coding system/@sc{mime}
+charset.@footnote{The part can only be split at line boundaries,
+though---if more than one @sc{mime} charset is required to encode a
+single line, it is not possible to encode the part.} Note that this
+procedure works with any correctly-defined coding systems, not just
+built-in ones. Given a suitably-defined UTF-8 coding system---one
+capable of encoding the Emacs charsets you use---it is not normally
+necessary to split a part by charset.
+
@vindex mm-mime-mule-charset-alist
-Things are slightly more complicated when running Emacs with Mule
-support. In this case, a list of the Mule charsets used in the part is
-obtained, and the corresponding @sc{mime} charsets are determined. If
-this results in a single @sc{mime} charset, this is used to encode the
-part. But if the resulting list of @sc{mime} charsets contains more
-than one element, two things can happen: if it is possible to encode the
-part via UTF-8, this charset is used. (For this, Emacs must support the
-@code{utf-8} coding system, and the part must consist entirely of
-characters which have Unicode counterparts.) If UTF-8 is not available,
-the part is split into several, so that each one can be encoded with a
-single @sc{mime} charset. The part can only be split at line
-boundaries, though---if more than one @sc{mime} charset is required to
-encode a single line, it is not possible to encode the part.
+@cindex XEmacs/Mule
+It isn't possible to do this properly in XEmacs/Mule. Instead, a list
+of the Mule charsets used in the part is obtained, and the
+corresponding @sc{mime} charsets are determined by lookup in
+@code{mm-mime-mule-charset-alist}. If the list elements all
+correspond to a single @sc{mime} charset, that is used to encode the
+part. Otherwise, the part is split as above.
@node Conversion
@section Conversion