Commit dd6478be authored by Dave Love's avatar Dave Love
Browse files

(Charset Translation): Fix description of process.

parent 7fda10ab
......@@ -18,7 +18,7 @@
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
......@@ -47,7 +47,7 @@ license to the document, as described in section 6 of the license.
@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
......@@ -1264,7 +1264,9 @@ has been composed inside Emacs, an appropriate @sc{mime} charset has to
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,
......@@ -1274,23 +1276,31 @@ Variables, message, Message Manual}, for example.) If there are only
@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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment