5 |
@synindex fn cp |
@synindex fn cp |
6 |
@synindex vr cp |
@synindex vr cp |
7 |
@synindex pg cp |
@synindex pg cp |
|
@dircategory Emacs |
|
|
@direntry |
|
|
* MIME: (emacs-mime). Emacs MIME de/composition library. |
|
|
@end direntry |
|
|
@iftex |
|
|
@finalout |
|
|
@end iftex |
|
|
@setchapternewpage odd |
|
|
|
|
|
@ifnottex |
|
8 |
|
|
9 |
|
@copying |
10 |
This file documents the Emacs MIME interface functionality. |
This file documents the Emacs MIME interface functionality. |
11 |
|
|
12 |
Copyright (C) 1998,99,2000 Free Software Foundation, Inc. |
Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc. |
13 |
|
|
14 |
|
@quotation |
15 |
Permission is granted to copy, distribute and/or modify this document |
Permission is granted to copy, distribute and/or modify this document |
16 |
under the terms of the GNU Free Documentation License, Version 1.1 or |
under the terms of the GNU Free Documentation License, Version 1.1 or |
17 |
any later version published by the Free Software Foundation; with no |
any later version published by the Free Software Foundation; with no |
28 |
Documentation License. If you want to distribute this document |
Documentation License. If you want to distribute this document |
29 |
separately from the collection, you can do so by adding a copy of the |
separately from the collection, you can do so by adding a copy of the |
30 |
license to the document, as described in section 6 of the license. |
license to the document, as described in section 6 of the license. |
31 |
@end ifnottex |
@end quotation |
32 |
|
@end copying |
33 |
|
|
34 |
@tex |
@dircategory Emacs |
35 |
|
@direntry |
36 |
|
* MIME: (emacs-mime). Emacs MIME de/composition library. |
37 |
|
@end direntry |
38 |
|
@iftex |
39 |
|
@finalout |
40 |
|
@end iftex |
41 |
|
@setchapternewpage odd |
42 |
|
|
43 |
@titlepage |
@titlepage |
44 |
@title Emacs MIME Manual |
@title Emacs MIME Manual |
45 |
|
|
46 |
@author by Lars Magne Ingebrigtsen |
@author by Lars Magne Ingebrigtsen |
47 |
@page |
@page |
|
|
|
48 |
@vskip 0pt plus 1filll |
@vskip 0pt plus 1filll |
49 |
Copyright @copyright{} 1998,99,2000 Free Software Foundation, Inc. |
@insertcopying |
|
|
|
|
Permission is granted to copy, distribute and/or modify this document |
|
|
under the terms of the GNU Free Documentation License, Version 1.1 or |
|
|
any later version published by the Free Software Foundation; with the |
|
|
Invariant Sections being none, with the Front-Cover texts being ``A GNU |
|
|
Manual'', and with the Back-Cover Texts as in (a) below. A copy of the |
|
|
license is included in the section entitled ``GNU Free Documentation |
|
|
License'' in the Emacs manual. |
|
|
|
|
|
(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify |
|
|
this GNU Manual, like GNU software. Copies published by the Free |
|
|
Software Foundation raise funds for GNU development.'' |
|
|
|
|
|
This document is part of a collection distributed under the GNU Free |
|
|
Documentation License. If you want to distribute this document |
|
|
separately from the collection, you can do so by adding a copy of the |
|
|
license to the document, as described in section 6 of the license. |
|
50 |
@end titlepage |
@end titlepage |
|
@page |
|
51 |
|
|
|
@end tex |
|
52 |
|
|
53 |
@node Top |
@node Top |
54 |
@top Emacs MIME |
@top Emacs MIME |
900 |
|
|
901 |
@defopt mm-inline-media-tests |
@defopt mm-inline-media-tests |
902 |
This is an alist where the key is a @sc{mime} type, the second element |
This is an alist where the key is a @sc{mime} type, the second element |
903 |
is a function to display the part @dfn{inline} (i.e., inside Emacs), and |
is a function to display the part @dfn{inline} (i.e., inside Emacs), and |
904 |
the third element is a form to be @code{eval}ed to say whether the part |
the third element is a form to be @code{eval}ed to say whether the part |
905 |
can be displayed inline. |
can be displayed inline. |
906 |
|
|
923 |
|
|
924 |
@defopt mm-attachment-override-types |
@defopt mm-attachment-override-types |
925 |
Some @sc{mime} agents create parts that have a content-disposition of |
Some @sc{mime} agents create parts that have a content-disposition of |
926 |
@samp{attachment}. This variable allows overriding that disposition and |
@samp{attachment}. This variable allows overriding that disposition and |
927 |
displaying the part inline. (Note that the disposition is only |
displaying the part inline. (Note that the disposition is only |
928 |
overridden if we are able to, and want to, display the part inline.) |
overridden if we are able to, and want to, display the part inline.) |
929 |
@end defopt |
@end defopt |
981 |
@end lisp |
@end lisp |
982 |
|
|
983 |
We see that the function takes a @sc{mime} handle as its parameter. It |
We see that the function takes a @sc{mime} handle as its parameter. It |
984 |
then goes to a temporary buffer, inserts the text of the part, does some |
then goes to a temporary buffer, inserts the text of the part, does some |
985 |
work on the text, stores the result, goes back to the buffer it was |
work on the text, stores the result, goes back to the buffer it was |
986 |
called from and inserts the result. |
called from and inserts the result. |
987 |
|
|
1088 |
|
|
1089 |
@item charset |
@item charset |
1090 |
The contents of the body of the part are to be encoded in the character |
The contents of the body of the part are to be encoded in the character |
1091 |
set speficied (@samp{Content-Type}). |
set specified (@samp{Content-Type}). |
1092 |
|
|
1093 |
@item name |
@item name |
1094 |
Might be used to suggest a file name if the part is to be saved |
Might be used to suggest a file name if the part is to be saved |
1244 |
be chosen. |
be chosen. |
1245 |
|
|
1246 |
@vindex mail-parse-charset |
@vindex mail-parse-charset |
1247 |
If you are running a non-Mule Emacs, this process is simple: if the part |
@cindex unibyte Emacs |
1248 |
|
If you are running a non-Mule XEmacs, or Emacs in unibyte |
1249 |
|
mode@footnote{Deprecated!}, this process is simple: if the part |
1250 |
contains any non-@sc{ascii} (8-bit) characters, the @sc{mime} charset |
contains any non-@sc{ascii} (8-bit) characters, the @sc{mime} charset |
1251 |
given by @code{mail-parse-charset} (a symbol) is used. (Never set this |
given by @code{mail-parse-charset} (a symbol) is used. (Never set this |
1252 |
variable directly, though. If you want to change the default charset, |
variable directly, though. If you want to change the default charset, |
1256 |
@sc{ascii} characters, the @sc{mime} charset @samp{US-ASCII} is used, of |
@sc{ascii} characters, the @sc{mime} charset @samp{US-ASCII} is used, of |
1257 |
course. |
course. |
1258 |
|
|
1259 |
@cindex Mule |
@cindex multibyte Emacs |
1260 |
@cindex UTF-8 |
@cindex @code{mime-charset} property |
1261 |
@cindex Unicode |
In a normal (multibyte) Emacs session, a list of coding systems is |
1262 |
|
derived that can encode the message part's content and correspond to |
1263 |
|
MIME charsets (according to their @code{mime-charset} property). This |
1264 |
|
list is according to the normal priority rules and the highest priority |
1265 |
|
one is chosen to encode the part. If no such coding system can encode |
1266 |
|
the part's contents, they are split into several parts such that each |
1267 |
|
can be encoded with an appropriate coding system/@sc{mime} |
1268 |
|
charset.@footnote{The part can only be split at line boundaries, |
1269 |
|
though---if more than one @sc{mime} charset is required to encode a |
1270 |
|
single line, it is not possible to encode the part.} Note that this |
1271 |
|
procedure works with any correctly-defined coding systems, not just |
1272 |
|
built-in ones. Given a suitably-defined UTF-8 coding system---one |
1273 |
|
capable of encoding the Emacs charsets you use---it is not normally |
1274 |
|
necessary to split a part by charset. |
1275 |
|
|
1276 |
@vindex mm-mime-mule-charset-alist |
@vindex mm-mime-mule-charset-alist |
1277 |
Things are slightly more complicated when running Emacs with Mule |
@cindex XEmacs/Mule |
1278 |
support. In this case, a list of the Mule charsets used in the part is |
It isn't possible to do this properly in XEmacs/Mule. Instead, a list |
1279 |
obtained, and the corresponding @sc{mime} charsets are determined. If |
of the Mule charsets used in the part is obtained, and the |
1280 |
this results in a single @sc{mime} charset, this is used to encode the |
corresponding @sc{mime} charsets are determined by lookup in |
1281 |
part. But if the resulting list of @sc{mime} charsets contains more |
@code{mm-mime-mule-charset-alist}. If the list elements all |
1282 |
than one element, two things can happen: if it is possible to encode the |
correspond to a single @sc{mime} charset, that is used to encode the |
1283 |
part via UTF-8, this charset is used. (For this, Emacs must support the |
part. Otherwise, the part is split as above. |
|
@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. |
|
1284 |
|
|
1285 |
@node Conversion |
@node Conversion |
1286 |
@section Conversion |
@section Conversion |