(mm-backend): Translate.
[elisp/flim.git] / mime-en.sgml
1 <!doctype sinfo system>
2 <head>
3 <title>FLIM 1.9 Manual about MIME Features
4 <author>MORIOKA Tomohiko <mail>morioka@jaist.ac.jp</mail>
5 <date>1998/07/01
6
7 <toc>
8 </head>
9
10 <body>
11
12 <abstract>
13 <p>
14 This file documents MIME features of FLIM, a Internet message
15 parsing/encoding library for GNU Emacs.
16 </abstract>
17
18
19 <h1> What is FLIM?
20 <node> Introduction
21 <p>
22 FLIM is a library to provide basic features about message
23 representation or encoding.
24
25
26 <h1> How to use MIME features
27 <node> How to use
28 <p>
29 Please eval following to use MIME features provided by FLIM:
30
31 <lisp>
32 (require 'mime)
33 </lisp>
34
35
36 <h1> Message and Entity
37 <node> Entity
38 <p>
39 According to <dref>RFC 2045</dref>, `The term ``entity'', refers
40 specifically to the MIME-defined header fields and contents of either
41 a message or one of the parts in the body of a multipart entity.'  In
42 this document, the term <concept>entity</concept> indicates all of
43 header fields and body.
44 <p>
45 The definition of RFC 2045 indicates that a MIME message is a tree,
46 and each node of the tree is an entity.  Namely MIME extends message
47 to tree structure.
48 <p>
49 FLIM uses <concept>mime-entity</concept> structure to represent
50 information of entity.  In this document, it is called simply
51 `mime-entity'.
52
53
54 <h2> Functions to create mime-entity
55 <node> Entity creation
56 <p>
57 <defun name="mime-open-entity">
58           <opts> type location
59 <p>
60 Open an entity and return it.
61 <p>
62 <var>type</var> is representation-type. <cf node="mm-backend">
63 <p>
64 <var>location</var> is location of entity.  Specification of it is
65 depended on representation-type.
66 </defun>
67
68 <defun name="mime-parse-buffer">
69           <opts> buffer type
70 <p>
71 Parse <var>buffer</var> as message, and set the result to buffer local
72 variable <code>mime-message-structure</code> of <var>buffer</var> as
73 mime-entity.
74 <p>
75 If <var>buffer</var> is omitted, current buffer is used.
76 <p>
77 <var>type</var> is representation-type of created mime-entity. <cf
78 node="mm-backend"> Default value is <var>buffer</var>.
79 </defun>
80
81
82 <h2> Features about message tree
83 <node> Entity hierarchy
84 <p>
85 Structure of a MIME message is tree.
86 <p>
87 In the tree, root node is the entity indicates all of the message.  In
88 this document, it is called <concept>root-entity</concept> or
89 <concept>message</concept>.  In FLIM, it is indicated by buffer local
90 variable <code>mime-message-structure</code>.
91 <p>
92 Each entity except root-entity has a parent.  An entity may have
93 children.  We can indicate an entity by relative position from a base
94 entity, based on the parent-child relationship.
95 <p>
96 In addition, we can indicate an entity by absolute position of the
97 message.
98 <p>
99 Each entity, which is a node of the tree, can be numbered by
100 depth and left-to-right order of the depth.
101 <verb>
102
103                               +-------+
104                               |  nil  |
105                               +---+---+
106               +-------------------+-------------------+
107             +-+-+               +-+-+               +-+-+
108             | 0 |               | 1 |               | 2 |
109             +-+-+               +-+-+               +-+-+
110               |         +---------+---------+         |
111            +--+--+   +--+--+   +--+--+   +--+--+   +--+--+
112            | 0.0 |   | 1.0 |   | 1.1 |   | 1.2 |   | 2.0 |
113            +-----+   +-----+   +-----+   +-----+   +-----+
114
115 </verb>
116 <p>
117 Namely, if depth of a node is n, the node has a node-number, which is
118 consists of n integers.  In this document, it is called
119 <concept>entity-number</concept>.  An entity-number is represented by
120 list of integer, like <code>(1 2 3)</code>.
121 <p>
122 mime-entity has also <concept>node-id</concept>.  A node-id is
123 represented by reversed list of entity-number.  For example, node-id
124 corresponding with 1.2.3 is <code>(3 2 1)</code>.
125 <p>
126 Each entity can be indicated by entity-number or node-id in
127 <code>mime-message-structure</code>.
128
129 <defvar name="mime-message-structure">
130 <p>
131 Buffer local variable to store mime-entity structure of message.
132 </defvar>
133
134 <defun name="mime-entity-children">
135           <args> entity
136 <p>
137 Return list of entities included in the <var>entity</var>.
138 </defun>
139
140 <defun name="mime-entity-parent">
141           <args> entity <opts> message
142 <p>
143 Return parent entity of the <var>entity</var>.
144 <p>
145 If <var>message</var> is specified, it is regarded as root instead of
146 <code>mime-message-structure</code>.
147 </defun>
148
149 <defun name="mime-root-entity-p">
150           <args> entity
151 <p>
152 Return non-<code>nil</code> if <var>entity</var> is root entity
153 (message).
154 </defun>
155
156 <defun name="mime-entity-node-id">
157           <args> entity
158 <p>
159 Return node-id of <var>entity</var>.
160 </defun>
161
162 <defun name="mime-entity-number">
163           <args> entity
164 <p>
165 Return entity-number of <var>entity</var>.
166 </defun>
167
168 <defun name="mime-find-entity-from-number">
169             <args> entity-number <opts> message
170 <p>
171 Return entity from <var>entity-number</var> in <var>message</var>.
172 <p>
173 If <var>message</var> is not specified,
174 <code>mime-message-structure</code> is used.
175 </defun>
176
177 <defun name="mime-find-entity-from-node-id">
178             <args> entity-node-id <opts> message
179 <p>
180 Return entity from <var>entity-node-id</var> in <var>message</var>.
181 <p>
182 If <var>message</var> is not specified,
183 <code>mime-message-structure</code> is used.
184 </defun>
185
186
187 <h2> Functions about attributes of mime-entity
188 <node> Entity Attributes
189 <p>
190 <defun name="mime-entity-content-type">
191             <args> entity
192 <p>
193 Return content-type of <var>entity</var>.
194 <cf node="mime-content-type">
195 </defun>
196
197 <defun name="mime-entity-content-disposition">
198             <args> entity
199 <p>
200 Return content-disposition of <var>entity</var>. <cf
201 node="mime-content-disposition">
202 </defun>
203
204 <defun name="mime-entity-filename">
205             <args> entity
206 <p>
207 Return file name of <var>entity</var>.
208 </defun>
209
210 <defun name="mime-entity-encoding">
211             <args> entity <opts> default-encoding
212 <p>
213 Return content-transfer-encoding of <var>entity</var>.
214 <cf node="Content-Transfer-Encoding">
215 <p>
216 If the <var>entity</var> does not have Content-Transfer-Encoding
217 field, this function returns <var>default-encoding</var>.  If it is
218 nil, <code>"7bit"</code> is used as default value.
219 </defun>
220
221 <defun name="mime-entity-cooked-p">
222             <args> entity
223 <p>
224 Return non-nil if contents of <var>entity</var> has been already
225 code-converted.
226 </defun>
227
228
229 <h2> Information of entity header
230 <node> Entity-header
231 <p>
232 <defun name="mime-fetch-field">
233             <args> field-name <opts> entity
234 <p>
235 Return field-body of <var>field-name</var> field in header of
236 <var>entity</var>.
237 <p>
238 The results is network representation.
239 <p>
240 If <var>entity</var> is omitted, <code>mime-message-structure</code>
241 is used as default value.
242 <p>
243 If <var>field-name</var> field is not found, this function returns
244 <code>nil</code>.
245 </defun>
246
247 <defun name="mime-read-field">
248             <args> field-name <opts> entity
249 <p>
250 Parse <var>field-name</var> field in header of <var>entity</var>, and
251 return the result.
252 <p>
253 Format of result is depended on kind of field.  For non-structured
254 field, this function returns string.  For structured field, it returns
255 list corresponding with structure of the field.
256 <p>
257 Strings in the result will be converted to internal representation of
258 Emacs.
259 <p>
260 If <var>entity</var> is omitted, <code>mime-message-structure</code>
261 is used as default value.
262 <p>
263 If <var>field-name</var> field is not found, this function returns
264 <code>nil</code>.
265 </defun>
266
267 <defun name="mime-insert-decoded-header">
268             <args> entity <opts> invisible-fields visible-fields
269 <p>
270 Insert before point a decoded contents of header of <var>entity</var>.
271 <p>
272 <var>invisible-fields</var> is list of regexps to match field-name to
273 hide.  <var>visible-fields</var> is list of regexps to match
274 field-name to hide.
275 <p>
276 If a field-name is matched with some elements of
277 <var>invisible-fields</var> and matched with none of
278 <var>visible-fields</var>, this function don't insert the field.
279 </defun>
280
281
282 <h2> Contents of Entity
283 <node> Entity-content
284 <p>
285 <defun name="mime-entity-content">
286             <args> entity
287 <p>
288 Return content of <var>entity</var> as byte sequence.
289 </defun>
290
291 <defun name="mime-write-entity-content">
292             <args> entity filename
293 <p>
294 Write content of <var>entity</var> into <var>filename</var>.
295 </defun>
296
297 <defun name="mime-write-entity">
298             <args> entity filename
299 <p>
300 Write representation of <var>entity</var> into <var>filename</var>.
301 </defun>
302
303 <defun name="mime-write-entity-body">
304             <args> entity filename
305 <p>
306 Write body of <var>entity</var> into <var>filename</var>.
307 </defun>
308
309
310 <h2> Entity as buffer representation
311 <node> Entity buffer
312 <p>
313 <defun name="mime-entity-buffer">
314             <args> entity
315 <p>
316 Return buffer, which contains <var>entity</var>.
317 </defun>
318
319 <defun name="mime-entity-point-min">
320             <args> entity
321 <p>
322 Return the start point of <var>entity</var> in the buffer which
323 contains <var>entity</var>.
324 </defun>
325
326 <defun name="mime-entity-point-max">
327             <args> entity
328 <p>
329 Return the end point of <var>entity</var> in the buffer which
330 contains <var>entity</var>.
331 </defun>
332
333 <defun name="mime-entity-header-start">
334             <args> entity
335 <p>
336 Return the start point of header of <var>entity</var> in the buffer
337 which contains <var>entity</var>.
338 </defun>
339
340 <defun name="mime-entity-header-end">
341             <args> entity
342 <p>
343 Return the end point of header of <var>entity</var> in the buffer
344 which contains <var>entity</var>.
345 </defun>
346
347 <defun name="mime-entity-body-start">
348             <args> entity
349 <p>
350 Return the start point of body of <var>entity</var> in the buffer
351 which contains <var>entity</var>.
352 </defun>
353
354 <defun name="mime-entity-body-end">
355             <args> entity
356 <p>
357 Return the end point of body of <var>entity</var> in the buffer which
358 contains <var>entity</var>.
359 </defun>
360
361
362 <h2> Entity representations and implementations
363 <node> mm-backend
364 <p>
365 Entity is an abstraction.  It is designed to use various data
366 representations for their purposes.
367 <p>
368 Each entity has <concept>representation-type</concept>.  It must be
369 specified when an entity is created. <cf node="Entity Creation">
370 <p>
371 Functions about entity are implemented by request processing to the
372 entity.  Each entity knows its representation-type.  Each entity calls
373 processing function corresponding with the representation-type.  Such
374 kind of function is called <concept>entity processing
375 method</concept>.  A module, consists of them corresponding with a
376 representation-type, is called <concept>mm-backend</concept>.
377 <p>
378 Module name of each mm-backend consists of the prefix <code>mm</code>
379 and its representation-type.  The module is required automatically
380 when its entity is created at first.
381
382
383 <h3> Message-passing for entity
384 <node> Request for entity
385 <p>
386 <defun name="mime-entity-send">
387               <args> entity message <rest> args
388 <p>
389 Send <var>message</var> to <var>entity</var> with <var>args</var>, and
390 return the result.
391 <p>
392 <var>args</var> is arguments of the <var>message</var>.
393 </defun>
394
395
396 <h3> How to make mm-backend
397 <node> mm-backend module
398 <p>
399 (It is not written yet, sorry. (^_^;)
400 <p>
401 (Please read mm*.el)
402
403
404 <h1> Information of Content-Type field
405 <node> Content-Type
406 <p>
407 <concept>Content-Type field</concept> is a field to indicate kind of
408 contents or data format, such as <dref>media-type</dref> and MIME
409 charset.  It is defined in <dref>RFC 2045</dref>.
410
411 <memo>
412 <p>
413 Historically, Content-Type field was proposed in RFC 1049.  In it,
414 Content-Type did not distinguish type and subtype, and there are no
415 mechanism to represent kind of character code like MIME charset.
416 </memo>
417
418 <p>
419 FLIM provides parser for Content-Type field and structure
420 <concept>mime-content-type</concept> to store information of
421 Content-Type field.
422
423
424 <h2> Format of Content-Type field
425 <node> Content-Type field
426 <p>
427 Content-Type \e$BMs$N7A<0$O0J2<$N$h$&$KDj5A$5$l$F$$$^$9!'\e(B
428
429 <quote>
430 ``Content-Type'' ``:'' <concept>type</concept> ``/''
431 <concept>subtype</concept> *( ``;'' <concept>parameter</concept> )
432 </quote>
433 <p>
434 \e$BNc$($P!"\e(B
435
436 <quote>
437 <verb>
438 Content-Type: image/jpeg
439 </verb>
440 </quote>
441
442 <noindent>
443 \e$B$d\e(B
444
445 <quote>
446 <verb>
447 Content-Type: text/plain; charset=iso-2022-jp
448 </verb>
449 </quote>
450
451 <noindent>
452 \e$B$J$I$N$h$&$KMQ$$$i$l$^$9!#\e(B
453 <p>
454 \e$B$3$3$G!"\e(B`type' \e$B$H\e(B `subtype' \e$B$O\e(B entity \e$B$N7A<0$r<($9$b$N$G!"N><T$rAm>N$7\e(B
455 \e$B$F!"\e(B`media-type' \e$B$H8F$V$3$H$K$7$^$9!#>e5-$NNc$K$*$1$k\e(B `image/jpeg' \e$B$d\e(B
456 `text/plain' \e$B$O\e(B media-type \e$B$N#1$D$G$9!#\e(B
457
458 <memo>
459 <p>
460 Content-Type \e$BMs$N$J$$\e(B entity \e$B$O\e(B
461
462 <quote>
463 <verb>
464 Content-Type: text/plain; charset=us-ascii
465 </verb>
466 </quote>
467
468 <noindent>
469 \e$B$H$7$F2r<a$5$l$k!#\e(B<cf node="us-ascii">
470 </memo>
471
472
473 <h2> mime-content-type structure
474 <node> mime-content-type
475 <p>
476 <define type="Structure" name="mime-content-type">
477 <p>
478 Content-Type \e$BMs$N>pJs$r3JG<$9$k$?$a$N9=B$BN!#\e(B
479 <p>
480 \e$B$3$N9=B$BN$r;2>H$9$k$K$O\e(B <code>mime-content-type-\e$BMWAGL>\e(B</code> \e$B$H$$$&L>\e(B
481 \e$BA0$N;2>H4X?t$rMQ$$$k!#\e(B
482 <p>
483 \e$B$3$N9=B$BN$NMWAG$O0J2<$NDL$j$G$"$k!'\e(B
484
485 <vl>
486 <dt>primary-type<dd>media-type \e$B$N<g7?\e(B (symbol).
487 </dd>
488 <dt>subtype<dd>media-type \e$B$NI{7?\e(B (symbol).
489 </dd>
490 <dt>parameters<dd>Content-Type \e$BMs$N\e(B parameter (\e$BO"A[\e(B list).
491 </dd>
492 </vl>
493 </define>
494
495 <defun name="make-mime-content-type">
496           <args> type subtype
497           <opts> parameters
498 <p>content-type \e$B$N@8@.;R!#\e(B
499 </defun>
500
501 <defun name="mime-content-type-parameter">
502 <args> content-type parameter
503 <p>
504 <var>content-type</var> \e$B$N\e(B <var>parameter</var> \e$B$NCM$rJV$9!#\e(B
505 </defun>
506
507
508 <h2> Parser
509 <node> Content-Type parser
510 <p>
511 <defun name="mime-parse-Content-Type">
512           <args> string
513 <p>
514 <var>string</var> \e$B$r\e(B content-type \e$B$H$7$F2r@O$7$?7k2L$rJV$9!#\e(B
515 </defun>
516
517 <defun name="mime-read-Content-Type">
518 <p>
519 \e$B8=:_$N\e(B buffer \e$B$N\e(B Content-Type \e$BMs$rFI$_<h$j!"2r@O$7$?7k2L$rJV$9!#\e(B
520 <p>
521 Content-Type \e$BMs$,B8:_$7$J$$>l9g$O\e(B nil \e$B$rJV$9!#\e(B
522 </defun>
523
524
525 <h2> Utility functions
526 <node> Content-Type utility
527 <p>
528 <defun name="mime-type/subtype-string">
529           <args> type <opts> subtype
530 <p>
531 Return type/subtype string from <var>type</var> and
532 <var>subtype</var>.
533 </defun>
534
535
536 <h1> Information of Content-Disposition field
537 <node> Content-Disposition
538 <p>
539 <concept>Content-Disposition \e$BMs\e(B</concept> \e$B$O\e(B entity \e$B$NI=<($d\e(B file \e$BL>$J$I\e(B
540 \e$B$NB0@-$K$J$I$K4X$9$k>pJs$r5-=R$9$k$?$a$N$b$N$G$9!#\e(B
541
542 <rfc number="2183" type="Standards Track"
543               author="S. Dorner, K. Moore and R. Troost"
544               title="Communicating Presentation Information in
545               Internet Messages: The Content-Disposition Header"
546               date="August 1997">
547 <p>
548 FLIM \e$B$O\e(B Content-Disposition \e$BMs$r9=J82r@O$9$k4X?t$H\e(B Content-Disposition 
549 \e$BMs$N2r@O7k2L$r3JG<$9$k9=B$BN\e(B 
550 <concept>mime-content-disposition</concept> \e$B$rDs6!$7$^$9!#\e(B
551
552
553 <h2> mime-content-disposition structure
554 <node> mime-content-disposition
555 <p>
556 <define type="Structure" name="mime-content-disposition">
557 <p>
558 Content-Disposition \e$BMs$N2r@O7k2L$r<}$a$k$?$a$N9=B$BN!#\e(B
559 <p>
560 \e$B$3$N9=B$BN$r;2>H$9$k$K$O\e(B <code>mime-content-disposition-\e$BMWAGL>\e(B</code> \e$B$H\e(B
561 \e$B$$$&L>A0$N;2>H4X?t$rMQ$$$k!#\e(B
562 <p>
563 \e$B$3$N9=B$BN$NMWAG$O0J2<$NDL$j$G$"$k!'\e(B
564
565 <vl>
566 <dt>disposition-type<dd>disposition-type (symbol).
567 </dd>
568 <dt>parameters<dd>Content-Disposition \e$BMs$N\e(B parameter (\e$BO"A[\e(B list).
569 </dd>
570 </vl>
571 </define>
572
573 <defun name="mime-content-disposition-parameter">
574 <args> content-disposition parameter
575 <p>
576 <var>content-disposition</var> \e$B$N\e(B <var>parameter</var> \e$B$NCM$rJV$9!#\e(B
577 </defun>
578
579 <defun name="mime-content-disposition-filename">
580 <args> content-disposition
581 <p>
582 <var>content-disposition</var> \e$B$N\e(B filename \e$B$NCM$rJV$9!#\e(B
583 </defun>
584
585
586 <h2> Parser for Content-Disposition field
587 <node> Content-Disposition parser
588 <p>
589 <defun name="mime-parse-Content-Disposition">
590             <args> string
591 <p>
592 <var>string</var> \e$B$r\e(B content-disposition \e$B$H$7$F2r@O$7$?7k2L$rJV$9!#\e(B
593 </defun>
594
595 <defun name="mime-read-Content-Disposition">
596 <p>
597 \e$B8=:_$N\e(B buffer \e$B$N\e(B Content-Disposition \e$BMs$rFI$_<h$j!"2r@O$7$?7k2L$rJV$9!#\e(B
598 <p>
599 Content-Disposition \e$BMs$,B8:_$7$J$$>l9g$O\e(B nil \e$B$rJV$9!#\e(B
600 </defun>
601
602
603 <h1> Encoding Method
604 <node> Content-Transfer-Encoding
605 <p>
606 <concept>Content-Transfer-Encoding \e$BMs\e(B</concept> \e$B$O\e(B entity \e$B$NId9f2=K!$r5-\e(B
607 \e$B=R$9$k$?$a$N$b$N$G$9!#\e(B
608 <p>
609 FLIM \e$B$G$O\e(B Content-Transfer-Encoding \e$BMs$r9=J82r@O$9$k4X?t$rDs6!$7$^$9!#$3\e(B
610 \e$B$l$i$N4X?t$O\e(B Content-Transfer-Encoding \e$BMs$N>pJs$OJ8;zNs$GI=8=$7$^$9!#\e(B
611 <p>
612 \e$B$^$?!"\e(BContent-Transfer-Encoding \e$B$K4p$E$$$FId9f2=!&I|9f2=$r9T$&4X?t$bDs\e(B
613 \e$B6!$5$l$^$9!#\e(B
614
615
616 <h2> Parser
617 <node> Content-Transfer-Encoding parser
618 <p>
619 <defun name="mime-parse-Content-Transfer-Encoding">
620           <args> string
621 <p>
622 <var>string</var> \e$B$r\e(B content-transfer-encoding \e$B$H$7$F2r@O$7$?7k2L$rJV$9!#\e(B
623 </defun>
624
625 <defun name="mime-read-Content-Transfer-Encoding">
626           <opts>default-encoding
627 <p>
628 \e$B8=:_$N\e(B buffer \e$B$N\e(B Content-Transfer-Encoding \e$BMs$rFI$_<h$j!"2r@O$7$?7k2L$r\e(B
629 \e$BJV$9!#\e(B
630 <p>
631 Content-Transfer-Encoding \e$BMs$,B8:_$7$J$$>l9g$O\e(B
632 <var>default-encoding</var> \e$B$rJV$9!#\e(B
633 </defun>
634
635
636 <h2> Region encoding/decoding
637 <node> Region encoder/decoder
638 <p>
639 <defun name="mime-encode-region">
640             <args> start end encoding
641 <p>
642 Encode region <var>start</var> to <var>end</var> of current buffer
643 using <var>encoding</var>.
644 </defun>
645
646 <defun name="mime-decode-region">
647             <args> start end encoding
648 <p>
649 Decode region <var>start</var> to <var>end</var> of current buffer
650 using <var>encoding</var>.
651 </defun>
652
653 <defvar name="mime-encoding-method-alist">
654 <p>
655 Alist of encoding vs. corresponding method to encode region.
656 <p>
657 Each element looks like <code>(STRING . FUNCTION)</code> or
658 <code>(STRING . nil)</code>.  <var>string</var> is
659 content-transfer-encoding.  <code>function</code> is region encoder
660 and <code>nil</code> means not to encode.
661 </defvar>
662
663 <defvar name="mime-decoding-method-alist">
664 <p>
665 Alist of encoding vs. corresponding method to decode region.
666 <p>
667 Each element looks like <code>(STRING . FUNCTION)</code> or
668 <code>(STRING . nil)</code>.  <var>string</var> is
669 content-transfer-encoding.  <code>function</code> is region decoder
670 and <code>nil</code> means not to decode.
671 </defvar>
672
673
674 <h2> String encoding/decoding
675 <node> String encoder/decoder
676 <p>
677 <defun name="mime-decode-string">
678               <args> string encoding
679 <p>
680 <var>string</var> \e$B$r\e(B <var>encoding</var> \e$B$H$7$FI|9f$7$?7k2L$rJV$7$^$9!#\e(B
681 </defun>
682
683 <defvar name="mime-string-decoding-method-alist">
684 <p>
685 Alist of encoding vs. corresponding method to decode string.
686 <p>
687 Each element looks like <code>(STRING . FUNCTION)</code>.
688 STRING is content-transfer-encoding.
689 FUNCTION is string decoder.
690 </defvar>
691
692
693 <h2> File encoding/decoding
694 <node> File encoder/decoder
695 <p>
696 <defun name="mime-insert-encoded-file">
697             <args> filename encoding
698 <p>
699 Insert file <var>FILENAME</var> encoded by <var>ENCODING</var> format.
700 </defun>
701
702 <defun name="mime-write-decoded-region">
703               <args> start end filename encoding
704 <p>
705 Decode and write current region encoded by <var>encoding</var> into
706 <var>filename</var>.
707 <p>
708 <var>start</var> and <var>end</var> are buffer positions.
709 </defun>
710
711 <defvar name="mime-file-encoding-method-alist">
712 <p>
713 Alist of encoding vs. corresponding method to insert encoded file.
714 <p>
715 Each element looks like <code>(STRING . FUNCTION)</code>.  STRING is
716 content-transfer-encoding.  FUNCTION is function to insert encoded
717 file.
718 </defvar>
719
720 <defvar name="mime-file-decoding-method-alist">
721 <p>
722 Alist of encoding vs. corresponding method to write decoded region to
723 file.
724 <p>
725 Each element looks like <code>(STRING . FUNCTION)</code>.  STRING is
726 content-transfer-encoding.  FUNCTION is function to write decoded
727 region to file.
728 </defvar>
729
730
731 <h1> Network representation of header
732 <node> encoded-word
733 <p>
734 encoded-word \e$B$O\e(B header \e$B$GHs\e(B <dref>ASCII</dref> \e$BJ8;z$rI=8=$9$k$?$a$N7A\e(B
735 \e$B<0$G!"\e(B<concept>RFC 2047</concept> \e$B$GDj5A$5$l$F$$$^$9!#\e(B
736 <p>
737 <rfc number="2047" type="Standards Track" author="K. Moore"
738               title="MIME (Multipurpose Internet Mail Extensions) Part
739               Three: Message Header Extensions for Non-ASCII Text"
740               date="November 1996" obsolete="1521,1522,1590">
741 <p>
742 \e$B$^$?!"9T57$N0-$$$3$H$@$H8@$($^$9$,!"\e(Bencoded-word \e$B$rMQ$$$:$KHs\e(B 
743 <dref>ASCII</dref> \e$BJ8;z$r\e(B header \e$B$KF~$l$?5-;v$bB8:_$7$^$9!#\e(B
744 <p>
745 FLIM \e$B$O$3$l$i$rId9f2=!&I|9f2=$9$k5!G=$rDs6!$7$^$9!#\e(B
746
747
748 <h2> Header encoding/decoding
749 <node> Header encoder/decoder
750 <p>
751 <defun name="eword-encode-header">
752               <opts> code-conversion separator
753 <p>
754 Decode MIME encoded-words in header fields.
755 <p>
756 If <var>code-conversion</var> is <code>nil</code>, it decodes only
757 encoded-words.  If it is mime-charset, it decodes non-ASCII bit
758 patterns as the mime-charset.  Otherwise it decodes non-ASCII bit
759 patterns as the default-mime-charset.
760 <p>
761 If <var>separator</var> is not nil, it is used as header separator.
762 </defun>
763
764 <defun name="eword-encode-header">
765               <opts> code-conversion
766 <p>
767 Encode header fields to network representation, such as MIME
768 encoded-word.
769 <p>
770 It refer variable <code>eword-field-encoding-method-alist</code>.
771 </defun>
772
773
774 <h1> Various Customization
775 <node> custom
776 <p>
777 <define type="group" name="mime">
778 <p>
779 MIME \e$B4XO"5!G=$K4X$9$k\e(B group.
780 <p>
781 <code>mail</code> \e$B$H\e(B <code>news</code> \e$B$KB0$9$k!#\e(B
782 </define>
783
784 <defvar name="default-mime-charset">
785 <p>
786 \e$BE,@Z$J\e(B <dref>MIME charset</dref> \e$B$,8+$D$+$i$J$+$C$?>l9g$KMQ$$$i$l$k\e(B
787 MIME charset.
788 <p>
789 \e$BK\Mh$O\e(B APEL \e$B$NJQ?t$G$"$k!#\e(B
790 </defvar>
791
792 <defvar name="mime-temp-directory">
793 <p>
794 MIME \e$B5!G=$K4X$9$k<BAu$,0l;~E*$K;HMQ$9$k\e(B file \e$B$r:n@.$9$k\e(B directory.
795 <p>
796 \e$B4D6-JQ?t\e(B <code>MIME_TMP_DIR</code>, <code>TM_TMP_DIR</code>,
797 <code>TMPDIR</code>, <code>TMP</code> \e$B$b$7$/$O\e(B <code>TEMP</code> \e$B$,@_Dj\e(B
798 \e$B$5$l$F$$$?>l9g!"$=$l$r=i4|CM$H$7$FMQ$$$k!#2?$b@_Dj$5$l$F$$$J$$>l9g!"\e(B
799 <code>"/tmp/"</code> \e$B$rMQ$$$k!#\e(B
800 </defvar>
801
802
803 <h1> Appendix
804 <node> Appendix
805
806 <h2> Glossary
807 <node> Glossary
808
809 <h3> 7bit
810 <node> 7bit
811 <p>
812 <concept>7bit</concept> means any integer between 0 .. 127.
813 <p>
814 Any data represented by 7bit integers is called <concept>7bit
815 data</concept>.
816 <p>
817 Textual string consisted of Control characters between 0 .. 31 and
818 127, and space represented by 32, and graphic characters between 33
819 .. 236 are called <concept>7bit (textual) string</concept>.
820 <p>
821 Conventional Internet <a node="MTA">MTA</a> can translate 7bit data,
822 so it is no need to translate by <a
823 node="Quoted-Printable">Quoted-Printable</a> or <a
824 node="Base64">Base64</a> for 7bit data.
825 <p>
826 However if there are too long lines, it can not translate by 7bit MTA
827 even if it is 7bit data.  <dref>RFC 821</dref> and <dref>RFC
828 2045</dref> require lines in 7bit data must be less than 998 bytes.
829 So if a ``7bit data'' has a line more than 999 bytes, it is regarded
830 as <dref>binary</dref>.  For example, Postscript file should be
831 encoded by Quoted-Printable.
832
833
834 <h3> 8bit
835 <node> 8bit
836 <p>
837 <concept>8bit</concept> means any integer between 0 .. 255.
838 <p>
839 Any data represented by 8bit integers is called <concept>8bit
840 data</concept>.
841 <p>
842 Textual string consisted of Control characters between 0 .. 31, 127,
843 and 128 .. 159, and space represented by 32, and graphic characters
844 between 33 .. 236 and 160 .. 255 are called <concept>8bit (textual)
845 string</concept>.
846 <p>
847 For example, <dref>iso-8859-1</dref> or <dref>euc-kr</dref> are
848 coded-character-set represented by 8bit textual string.
849 <p>
850 Traditional Internet <a node="MTA">MTA</a> can translate only
851 <dref>7bit</dref> data, so if a 8bit data will be translated such MTA,
852 it must be encoded by <dref>Quoted-Printable</dref> or
853 <dref>Base64</dref>.
854 <p>
855 However 8bit MTA are increasing today.
856 <p>
857 However if there are too long lines, it can not translate by 8bit MTA
858 even if it is 8bit data.  <dref>RFC 2045</dref> require lines in 8bit
859 data must be less than 998 bytes.  So if a ``8bit data'' has a line
860 more than 999 bytes, it is regarded as <dref>binary</dref>, so it must
861 be encoded by Base64 or Quoted-Printable.
862
863
864 <h3> ASCII
865 <node> ASCII
866 <p>
867 <concept>ASCII</concept> is a 94-character set contains primary latin
868 characters (A-Z, a-z), numbers and some characters.  It is a standard
869 of the United States of America.  It is a variant of <a node="ISO
870 646">ISO 646</a>.
871
872 <standard abbrev="ASCII" title-en="Coded Character Set -- 7-Bit
873               American Standard Code for Information Interchange"
874               number="ANSI X3.4" year="1986">
875
876
877 <h3> Base64
878 <node> Base64
879 <p>
880 <concept>Base64</concept> is a transfer encoding method of
881 <dref>MIME</dref> defined in <dref>RFC 2045</dref>.
882 <p>
883 The encoding process represents 24-bit groups of input bits as output
884 strings of 4 encoded characters.  Encoded characters represent integer
885 0 .. 63 or <concept>pad</concept>.  Base64 data must be 4 * n bytes,
886 so pad is used to adjust size.
887 <p>
888 These 65 characters are subset of all versions of ISO 646, including
889 US-ASCII, and all versions of EBCDIC.  So it is safe even if it is
890 translated by non-Internet gateways.
891
892
893 <h3> binary
894 <node> binary
895 <p>
896 Any byte stream is called <concept>binary</concept>.
897 <p>
898 It does not require structureof lines.  It differs from from <a
899 node="8bit">8bit</a>.
900 <p>
901 In addition, if line structured data contain too long line (more than
902 998 bytes), it is regarded as binary.
903
904
905 <h3> Coded character set, Character code
906 <node> coded character set
907 <p>
908 A set of unambiguous rules that establishes a character set and the
909 one-to-one relationship between the characters of the set and their
910 bit combinations.
911
912
913 <h3> media-type
914 <node> media-type
915 <p>
916 <concept>media-type</concept> specifies the nature of the data in the
917 body of <dref>MIME</dref> <dref>entity</dref>.  It consists of
918 <concept>type</concept> and <concept>subtype</concept>.  It is defined
919 in <dref>RFC 2046</dref>.
920 <p>
921 Currently there are following standard primary-types:
922
923 <ul>
924 <li><concept>text</concept>
925 </li>
926 <li><concept>image</concept>
927 </li>
928 <li><concept>audio</concept>
929 </li>
930 <li><concept>video</concept>
931 </li>
932 <li><concept>application</concept>
933 </li>
934 <li><a node="multipart"><concept>multipart</concept></a>
935 </li>
936 <li><concept>message</concept>
937 </ul>
938
939 <p>
940 And there are various subtypes, for example, application/octet-stream,
941 audio/basic, image/jpeg, <dref>multipart/mixed</dref>,
942 <dref>text/plain</dref>, video/mpeg...
943
944 <p>
945 You can refer registered media types at <a
946 href="ftp://ftp.isi.edu/in-notes/iana/assignments/media-types">MEDIA
947 TYPES</a>.
948 <p>
949 In addition, you can use private type or subtype using
950 <concept>x-token</concept>, which as the prefix `x-'.  However you can
951 not use them in public.
952 <p>
953 <cf node="Content-Type field">
954
955
956 <h3> message
957 <node> message
958 <p>
959 In this document, it means mail defined in <dref>RFC 822</dref> and
960 news message defined in <dref>RFC 1036</dref>.
961
962
963 <h3> MIME
964 <node> MIME
965 <p>
966 MIME stands for <concept>Multipurpose Internet Mail
967 Extensions</concept>, it is an extension for <dref>RFC 822</dref>.
968 <p>
969 According to RFC 2045:
970 <p>
971 STD 11, RFC 822, defines a message representation protocol specifying
972 considerable detail about US-ASCII message headers, and leaves the
973 message content, or message body, as flat US-ASCII text.  This set of
974 documents, collectively called the Multipurpose Internet Mail
975 Extensions, or MIME, redefines the format of messages to allow for
976
977 <ol>
978 <li>textual message bodies in character sets other than US-ASCII,
979 </li>
980 <li>an extensible set of different formats for non-textual message
981 bodies,
982 </li>
983 <li>multi-part message bodies, and
984 </li>
985 <li>textual header information in character sets other than US-ASCII.
986 </ol>
987
988 <p>
989 It is defined in <dref>RFC 2045</dref>, <dref>RFC 2046</dref>, <a
990 node="encoded-word">RFC 2047</a>, <dref>RFC 2048</dref> and <dref>RFC
991 2049</dref>.
992
993
994 <h3> MIME charset
995 <node> MIME charset
996 <p>
997 <a node="coded character set">Coded character set</a> used in
998 <dref>Content-Type field</dref> or charset parameter of <a
999 node="encoded-word">encoded-word</a>.
1000 <p>
1001 It is defined in <dref>RFC 2045</dref>.
1002 <p>
1003 <dref>iso-2022-jp</dref> or <dref>euc-kr</dref> are kinds of it.  (In
1004 this document, MIME charsets are written by small letters to
1005 distinguish <dref>graphic character set</dref>.  For example, ISO
1006 8859-1 is a graphic character set, and iso-8859-1 is a MIME charset)
1007
1008
1009 <h3> MTA
1010 <node> MTA
1011 <p>
1012 <concept>Message Transfer Agent</concept>.  It means mail transfer
1013 programs (ex. sendmail) and news servers.
1014 <p>
1015 <cf node="MUA">
1016
1017
1018 <h3> MUA
1019 <node> MUA
1020 <p>
1021 <concept>Message User Agent</concept>.  It means mail readers and news
1022 readers.
1023 <p>
1024 <cf node="MTA">
1025
1026
1027 <h3> Quoted-Printable
1028 <node> Quoted-Printable
1029 <p>
1030 <concept>Quoted-Printable</concept> is a transfer encoding method of
1031 <dref>MIME</dref> defined in <dref>RFC 2045</dref>.
1032 <p>
1033 If the data being encoded are mostly US-ASCII text, the encoded form
1034 of the data remains largely recognizable by humans.
1035 <p>
1036 <cf node="Base64">
1037
1038
1039 <h3> RFC 822
1040 <node> RFC 822
1041 <p>
1042 A RFC defines format of Internet mail message, mainly <concept>message
1043 header</concept>.
1044
1045 <memo>
1046 <p>
1047 news message is based on RFC 822, so <concept>Internet
1048 message</concept> may be more suitable than <concept>Internet
1049 mail</concept> .
1050 </memo>
1051
1052 <rfc number="822" type="STD 11" author="D. Crocker" title="Standard
1053               for the Format of ARPA Internet Text Messages"
1054               date="August 1982">
1055
1056
1057 <h3> RFC 1036
1058 <node> RFC 1036
1059 <p>
1060 A RFC defines format of USENET message.  It is a subset of <dref>RFC
1061 822</dref>.  It is not Internet standard, but a lot of netnews
1062 excepting Usenet uses it.
1063
1064 <rfc name="USENET" number="1036" author="M. Horton and R. Adams"
1065               title="Standard for Interchange of USENET Messages"
1066               date="December 1987" obsolete="850">
1067
1068
1069 <h3> RFC 2045
1070 <node> RFC 2045
1071 <p>
1072 <rfc number="2045" type="Standards Track" author="N. Freed and
1073               N. Borenstein" title="Multipurpose Internet Mail
1074               Extensions (MIME) Part One: Format of Internet Message
1075               Bodies" date="November 1996" obsolete="1521, 1522,
1076               1590">
1077
1078
1079 <h3> RFC 2046
1080 <node> RFC 2046
1081 <p>
1082 <rfc number="2046" type="Standards Track" author="N. Freed and
1083               N. Borenstein" title="Multipurpose Internet Mail
1084                  Extensions (MIME) Part Two: Media Types"
1085                  date="November 1996" obsolete="1521, 1522, 1590">
1086
1087
1088 <h3> RFC 2048
1089 <node> RFC 2048
1090 <p>
1091 <rfc number="2048" type="Standards Track" author="N. Freed, J. Klensin
1092               and J. Postel" title="Multipurpose Internet Mail
1093               Extensions (MIME) Part Four: Registration Procedures"
1094               date="November 1996" obsolete="1521, 1522, 1590">
1095
1096
1097 <h3> RFC 2049
1098 <node> RFC 2049
1099 <p>
1100 <rfc number="2049" type="Standards Track" author="N. Freed and
1101               N. Borenstein" title="Multipurpose Internet Mail
1102               Extensions (MIME) Part Five: Conformance Criteria and
1103               Examples" date="November 1996" obsolete="1521, 1522,
1104               1590">
1105
1106
1107 <h3> plain text
1108 <node> plain text
1109 <p>
1110 A textual data represented by only <dref>coded character set</dref>.
1111 It does not have information about font or typesetting.
1112 <cf node="text/plain">
1113
1114
1115 <h3> us-ascii
1116 <node> us-ascii
1117 <p>
1118 A <a node="MIME charset">MIME charset</a> for primary Latin script
1119 mainly written by English or other languages.
1120 <p>
1121 It is a 7bit <dref>coded character set</dref> based on <dref>ISO
1122 2022</dref>, it contains only
1123 <dref>ASCII</dref> and <dref>code extension</dref> is not allowed.
1124 <p>
1125 It is standard coded character set of Internet mail.  If MIME charset
1126 is not specified, <concept>us-ascii</concept> is used as default.
1127 <p>
1128 In addition, <concept>ASCII</concept> of <dref>RFC 822</dref> should
1129 be interpreted as us-ascii.
1130
1131
1132 <h2> How to report bugs
1133 <node> Bug report
1134 <p>
1135 If you write bug-reports and/or suggestions for improvement, please
1136 send them to the tm Mailing List:
1137
1138 <ul>
1139 <li> Japanese <mail>bug-tm-ja@chamonix.jaist.ac.jp</mail>
1140 <li> English <mail>bug-tm-en@chamonix.jaist.ac.jp</mail>
1141 </ul>
1142
1143 <p>
1144 Notice that, we do not welcome bug reports about too old version.
1145 Bugs in old version might be fixed.  So please try latest version at
1146 first.
1147 <p>
1148 You should write <concept>good bug report</concept>.  If you write
1149 only ``FLIM does not work'', we can not find such situations.  At
1150 least, you should write name, type, variants and version of OS, emacs,
1151 APEL, FLIM, SEMI and MUA, and setting.  In addition, if error occurs,
1152 to send backtrace is very important. <cf file="emacs" node="Bugs">
1153 <p>
1154 Bug may not appear only your environment, but also in a lot of
1155 environment (otherwise it might not bug).  Therefor if you send mail
1156 to author directly, we must write a lot of mails.  So please send mail
1157 to address for tm bugs instead of author.
1158
1159 <p>
1160 Via the tm ML, you can report FLIM bugs, obtain the latest release of
1161 FLIM, and discuss future enhancements to FLIM.  To join the tm ML,
1162 send empty e-mail to:
1163
1164 <ul>
1165 <li> Japanese <mail>tm-ja-help@chamonix.jaist.ac.jp</mail>
1166 <li> English  <mail>tm-en-help@chamonix.jaist.ac.jp</mail>
1167 </ul>
1168
1169
1170 <h2> CVS based development
1171 <node> CVS
1172 <p>
1173 FLIM \e$B$N\e(B file \e$B$O\e(B CVS \e$B$r;H$C$F4IM}$5$l$F$$$^$9!#$3$N$?$a!"0J2<$NJ}K!$G:G\e(B
1174 \e$B?7$N\e(B FLIM \e$B$rF~<j$9$k$3$H$,$G$-$^$9!'\e(B
1175
1176 <verb>
1177 (0) cvs login
1178
1179     % cvs -d :pserver:anonymous@chamonix.jaist.ac.jp:/hare/cvs/root \
1180         login
1181
1182     CVS password: [CR] # NULL string
1183
1184 (1) checkout
1185
1186     % cvs -d :pserver:anonymous@chamonix.jaist.ac.jp:/hare/cvs/root \
1187         checkout [-r TAG] flim
1188 </verb>
1189
1190 <p>
1191 CVS \e$B$rMQ$$$?3+H/$K;22C$7$?$$J}$O\e(B
1192
1193 <ul>
1194 <li> <mail>cvs@chamonix.jaist.ac.jp</mail>
1195 </ul>
1196
1197 <noindent>
1198 \e$B$^$G!"\e(Baccount \e$BL>$H\e(B UNIX \e$B$N\e(B passwd \e$B$HF1$87A<0$N\e(B crypt \e$B2=$5$l$?\e(B password
1199 \e$B$r1h$($F8fO"Mm$/$@$5$$!#\e(B
1200
1201
1202 <h2> History of FLIM
1203 <node> History
1204 <p>
1205 FLIM \e$B$N\e(B code \e$B$N:G8E$NItJ,$O\e(B \e$B1]JB\e(B \e$B;LCR\e(B \e$B;a$,=q$$$?\e(B <file>mime.el</file>
1206 \e$B$K5/8;$7$^$9!#$3$N>.$5$J\e(B program \e$B$O\e(B Nemacs \e$B$GF0:n$9$k\e(B iso-2022-jp \e$B$N\e(B 
1207 B-encoding \e$B@lMQ$N\e(B encoded-word \e$B$NI|9f2=%W%m%0%i%`$G$7$?!#\e(B
1208 <p>
1209 \e$B$=$N8e!"<i2,\e(B \e$BCNI'\e(B \e$B$O\e(B <file>mime.el</file> \e$B$r85$K\e(B
1210 <file>tiny-mime.el</file> \e$B$H$$$&%W%m%0%i%`$r=q$-$^$9!#$3$l$O!"\e(BNemacs 
1211 \e$B$H\e(B Mule \e$B$GF0:n$9$k\e(B encoded-word \e$B$NId9f2=!&I|9f2=%W%m%0%i%`$G$7$?!#\e(B
1212 <file>tiny-mime.el</file> \e$B$O\e(B B-encoding \e$B$@$1$G$J$/\e(B Q-encoding \e$B$b\e(B
1213 support \e$B$7!"$^$?!"\e(BMULE \e$B$G07$&$3$H$,$G$-$k$5$^$6$^$J\e(B <dref>MIME
1214 charset</dref> \e$B$rF1;~$K;H$&$3$H$,$G$-$^$7$?!#$3$N;~!"\e(BNemacs \e$B$H\e(B Mule \e$B$N\e(B
1215 \e$BAPJ}$r\e(B support \e$B$9$k$?$a$KMQ$$$i$l$?%F%/%K%C%/$O8e$K\e(B emu package \e$B$K$^$H\e(B
1216 \e$B$a$i$l$^$9!#\e(B
1217 <p>
1218 \e$B$3$N:"!"<i2,\e(B \e$BCNI'\e(B \e$B$O\e(B <file>tiny-mime.el</file> \e$B$r$5$^$6$^$J\e(B MUA \e$B$G;H$&\e(B
1219 \e$B$?$a$N@_Dj=8$bG[I[$7$F$$$^$7$?$,!"$=$l$i$O8e$K\e(B
1220 <file>tiny-mime.el</file> \e$B$H$H$b$K#1$D$N\e(B package \e$B$K$^$H$a$i$l!"\e(Btm \e$B$H$$\e(B
1221 \e$B$&L>A0$GG[I[$5$l$^$9!#\e(B
1222 <p>
1223 \e$B<i2,\e(B \e$BCNI'\e(B \e$B$O$d$,$F!"\e(BMIME message \e$B$r1\Mw$9$k$?$a$N%W%m%0%i%`$G$"$k\e(B
1224 <file>tm-body.el</file> \e$B$r=q$-$^$9!#$3$l$O!"$9$0$K\e(B
1225 <file>tm-view.el</file> \e$B$H$$$&L>A0$KJQ$o$j$^$7$?$,!"$d$,$F!"$3$l$,\e(B
1226 <file>tiny-mime.el</file> \e$B$KBe$o$C$F!"\e(Btm \e$B$NCf3K$H$J$j$^$9!#\e(B
1227 <p>
1228 <file>tm-view.el</file> \e$B$OEvA3!"\e(BContent-Transfer-Encoding \e$B$r07$&I,MW$,\e(B
1229 \e$B$"$j$^$9!#$3$NL\E*$N$?$a$K!"\e(BMEL \e$B$,@0Hw$5$l$O$8$a$^$7$?!#\e(BBase64 \e$B$K4X$7\e(B
1230 \e$B$F$O\e(B <file>tiny-mime.el</file> \e$B$N\e(B code \e$B$,0\$5$l!"$^$?!"?7$?$K\e(B
1231 Quoted-Printable \e$B$N\e(B code \e$B$,DI2C$5$l$^$7$?!#$3$l$i$,\e(B
1232 <file>mel-b.el</file> \e$B$H\e(B <file>mel-q.el</file> \e$B$K$J$j$^$7$?!#\e(B
1233 <p>
1234 \e$B$^$?!"8e$K!"<i2,\e(B \e$BCNI'\e(B \e$B$K$h$C$F\e(B uuencode \e$BMQ$N\e(B <file>mel-u.el</file> \e$B$,\e(B
1235 \e$BDI2C$5$l!"$=$N8e$K!">.NS\e(B \e$B=$J?\e(B \e$B;a$K$h$C$F\e(B x-gzip64 \e$BMQ$N\e(B
1236 <file>mel-g.el</file> \e$B$,DI2C$5$l$^$7$?!#\e(B
1237 <p>
1238 tm \e$B$G$O8e$K!"<i2,\e(B \e$BCNI'\e(B \e$B$K$h$C$F\e(B <file>tiny-mime.el</file> \e$B$N:F<BAu$,9T\e(B
1239 \e$B$o$l!"$3$N2aDx$G!"\e(BSTD 11 \e$B$N\e(B parser \e$B$,=q$+$l$^$7$?!#$3$l$O!"8=:_$N\e(B 
1240 <file>std11.el</file> \e$B$KEv$?$j$^$9!#$^$?!"$3$N2aDx$G\e(B 
1241 <file>tiny-mime.el</file> \e$B$OI|9f2=$r9T$&\e(B <file>tm-ew-d.el</file> \e$B$HId\e(B
1242 \e$B9f2=$r9T$&\e(B <file>tm-ew-e.el</file> \e$B$KJ,$1$i$l$^$7$?!#$3$NN><T$,8=:_$N\e(B 
1243 <file>eword-decode.el</file> \e$B$H\e(B <file>eword-encode.el</file> \e$B$N@hAD$K\e(B
1244 \e$BEv$?$j$^$9!#\e(B
1245 <p>
1246 \e$B8e$K!"<i2,\e(B \e$BCNI'\e(B \e$B$i$K$h$C$F\e(B tm \e$B$NA4LL=q$-49$(:n6H$,9T$o$l!"$3$N2aDx$G!"\e(B
1247 tm \e$B$O\e(B APEL, MEL, SEMI, EMH, RMAIL-MIME, Gnus-MIME \e$B$J$I$KJ,$1$i$l$^$7$?!#\e(B
1248 \e$B$3$N$&$A$N\e(B MEL \e$B$,\e(B FLIM \e$B$ND>@\$N@hAD$KEv$?$j$^$9!#\e(B
1249 <p>
1250 \e$B8e$K!"\e(BAPEL \e$B$+$i\e(B <file>std11.el</file> \e$B$,0\$5$l!"$^$?!"\e(B
1251 <file>mailcap.el</file>, <file>eword-decode.el</file> \e$B$*$h$S\e(B 
1252 <file>eword-encode.el</file> \e$B$,\e(B SEMI \e$B$+$i0\$5$l!"\e(Bpackage \e$B$NL>A0$,\e(B FLIM
1253 \e$B$H$J$j$^$9!#\e(B
1254 <p>
1255 \e$B$3$ND>A0$+$iEDCf\e(B \e$BE/\e(B \e$B;a$,$h$j\e(B RFC \e$B$KCi<B$J<BAu$r=q$-;O$a!"$3$l$O!"8=:_!"\e(B
1256 FLIM \e$B$N;^$G$"$k\e(B ``FLIM-FLAM'' \e$B$H$J$C$F$$$^$9!#\e(B
1257
1258
1259 <h1> Concept Index
1260 <node> Concept Index
1261
1262 <cindex>
1263
1264
1265 <h1> Function Index
1266 <node> Function Index
1267
1268 <findex>
1269
1270
1271 <h1> Variable Index
1272 <node> Variable Index
1273
1274 <vindex>
1275
1276 </body>