(Entity hierarchy): 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 \e$BA0@a$^$G$K=R$Y$FMh$?\e(B entity \e$B$KBP$9$k=hM}$O!"\e(Bentity \e$B$KBP$7$F$=$N=hM}$r0M\e(B
372 \e$BMj$9$k$3$H$K$h$C$F<B8=$5$l$F$$$^$9!#\e(BEntity \e$B$O<+J,$N\e(B 
373 representation-type \e$B$rCN$C$F$*$j!"$=$N\e(B representation-type \e$B$K1~$8$F<B:]\e(B
374 \e$B$N=hM}$r9T$&4X?t$r8F$S=P$7$^$9!#$3$N$h$&$J4X?t$r\e(B <concept>entity \e$B=hM}\e(B
375 method</concept> \e$B$H8F$S$^$9!#$^$?!"\e(Brepresentation-type \e$BKh$K$3$N$h$&$J4X\e(B
376 \e$B?t$r$^$H$a$?$b$N$r\e(B <concept>mm-backend</concept> \e$B$H8F$S$^$9!#\e(B
377 <p>
378 mm-backend \e$B$O\e(B representation-type \e$B$NL>A0$N@hF,$K\e(B <code>mm</code> \e$B$H$$$&\e(B
379 \e$B@\F,<-$rIU$1$?4X?tL>$+$i$J$k\e(B module \e$B$G!"$=$N\e(B module \e$BL>$OF1MM$K\e(B
380 representation-type \e$B$NL>A0$N@hF,$K\e(B <code>mm</code> \e$B$rIU$1$?$b$N$K$J$C$F\e(B
381 \e$B$$$^$9!#$3$N\e(B module \e$B$O\e(B representation-type \e$B$N\e(B entity \e$B$,:G=i$K@8@.$5$l$k\e(B
382 \e$B;~$K<+F0E*$K\e(B require \e$B$5$l$^$9!#\e(B
383
384
385 <h3> Message-passing for entity
386 <node> Request for entity
387 <p>
388 <defun name="mime-entity-send">
389               <args> entity message <rest> args
390 <p>
391 <var>entity</var> \e$B$K\e(B <var>message</var> \e$B$rAw$k!#\e(B
392 <p>
393 <var>args</var> \e$B$O\e(B <var>message</var> \e$B$N0z?t$G$"$k!#\e(B
394 </defun>
395
396
397 <h3> How to make mm-backend
398 <node> mm-backend module
399 <p>
400 \e$B!J$9$_$^$;$s!#$=$N$&$A=q$-$^$9\e(B (^_^;\e$B!K\e(B
401 <p>
402 \e$B!J$H$j$"$($:!"\e(Bmm*.el \e$B$r;29M$K$7$F$/$@$5$$!K\e(B
403
404
405 <h1> Information of Content-Type field
406 <node> Content-Type
407 <p>
408 <concept>Content-Type field</concept> is a field to indicate kind of
409 contents or data format, such as <dref>media-type</dref> and MIME
410 charset.  It is defined in <dref>RFC 2045</dref>.
411
412 <memo>
413 <p>
414 Historically, Content-Type field was proposed in RFC 1049.  In it,
415 Content-Type did not distinguish type and subtype, and there are no
416 mechanism to represent kind of character code like MIME charset.
417 </memo>
418
419 <p>
420 FLIM provides parser for Content-Type field and structure
421 <concept>mime-content-type</concept> to store information of
422 Content-Type field.
423
424
425 <h2> Format of Content-Type field
426 <node> Content-Type field
427 <p>
428 Content-Type \e$BMs$N7A<0$O0J2<$N$h$&$KDj5A$5$l$F$$$^$9!'\e(B
429
430 <quote>
431 ``Content-Type'' ``:'' <concept>type</concept> ``/''
432 <concept>subtype</concept> *( ``;'' <concept>parameter</concept> )
433 </quote>
434 <p>
435 \e$BNc$($P!"\e(B
436
437 <quote>
438 <verb>
439 Content-Type: image/jpeg
440 </verb>
441 </quote>
442
443 <noindent>
444 \e$B$d\e(B
445
446 <quote>
447 <verb>
448 Content-Type: text/plain; charset=iso-2022-jp
449 </verb>
450 </quote>
451
452 <noindent>
453 \e$B$J$I$N$h$&$KMQ$$$i$l$^$9!#\e(B
454 <p>
455 \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
456 \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
457 `text/plain' \e$B$O\e(B media-type \e$B$N#1$D$G$9!#\e(B
458
459 <memo>
460 <p>
461 Content-Type \e$BMs$N$J$$\e(B entity \e$B$O\e(B
462
463 <quote>
464 <verb>
465 Content-Type: text/plain; charset=us-ascii
466 </verb>
467 </quote>
468
469 <noindent>
470 \e$B$H$7$F2r<a$5$l$k!#\e(B<cf node="us-ascii">
471 </memo>
472
473
474 <h2> mime-content-type structure
475 <node> mime-content-type
476 <p>
477 <define type="Structure" name="mime-content-type">
478 <p>
479 Content-Type \e$BMs$N>pJs$r3JG<$9$k$?$a$N9=B$BN!#\e(B
480 <p>
481 \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
482 \e$BA0$N;2>H4X?t$rMQ$$$k!#\e(B
483 <p>
484 \e$B$3$N9=B$BN$NMWAG$O0J2<$NDL$j$G$"$k!'\e(B
485
486 <vl>
487 <dt>primary-type<dd>media-type \e$B$N<g7?\e(B (symbol).
488 </dd>
489 <dt>subtype<dd>media-type \e$B$NI{7?\e(B (symbol).
490 </dd>
491 <dt>parameters<dd>Content-Type \e$BMs$N\e(B parameter (\e$BO"A[\e(B list).
492 </dd>
493 </vl>
494 </define>
495
496 <defun name="make-mime-content-type">
497           <args> type subtype
498           <opts> parameters
499 <p>content-type \e$B$N@8@.;R!#\e(B
500 </defun>
501
502 <defun name="mime-content-type-parameter">
503 <args> content-type parameter
504 <p>
505 <var>content-type</var> \e$B$N\e(B <var>parameter</var> \e$B$NCM$rJV$9!#\e(B
506 </defun>
507
508
509 <h2> Parser
510 <node> Content-Type parser
511 <p>
512 <defun name="mime-parse-Content-Type">
513           <args> string
514 <p>
515 <var>string</var> \e$B$r\e(B content-type \e$B$H$7$F2r@O$7$?7k2L$rJV$9!#\e(B
516 </defun>
517
518 <defun name="mime-read-Content-Type">
519 <p>
520 \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
521 <p>
522 Content-Type \e$BMs$,B8:_$7$J$$>l9g$O\e(B nil \e$B$rJV$9!#\e(B
523 </defun>
524
525
526 <h2> Utility functions
527 <node> Content-Type utility
528 <p>
529 <defun name="mime-type/subtype-string">
530           <args> type <opts> subtype
531 <p>
532 Return type/subtype string from <var>type</var> and
533 <var>subtype</var>.
534 </defun>
535
536
537 <h1> Information of Content-Disposition field
538 <node> Content-Disposition
539 <p>
540 <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
541 \e$B$NB0@-$K$J$I$K4X$9$k>pJs$r5-=R$9$k$?$a$N$b$N$G$9!#\e(B
542
543 <rfc number="2183" type="Standards Track"
544               author="S. Dorner, K. Moore and R. Troost"
545               title="Communicating Presentation Information in
546               Internet Messages: The Content-Disposition Header"
547               date="August 1997">
548 <p>
549 FLIM \e$B$O\e(B Content-Disposition \e$BMs$r9=J82r@O$9$k4X?t$H\e(B Content-Disposition 
550 \e$BMs$N2r@O7k2L$r3JG<$9$k9=B$BN\e(B 
551 <concept>mime-content-disposition</concept> \e$B$rDs6!$7$^$9!#\e(B
552
553
554 <h2> mime-content-disposition structure
555 <node> mime-content-disposition
556 <p>
557 <define type="Structure" name="mime-content-disposition">
558 <p>
559 Content-Disposition \e$BMs$N2r@O7k2L$r<}$a$k$?$a$N9=B$BN!#\e(B
560 <p>
561 \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
562 \e$B$$$&L>A0$N;2>H4X?t$rMQ$$$k!#\e(B
563 <p>
564 \e$B$3$N9=B$BN$NMWAG$O0J2<$NDL$j$G$"$k!'\e(B
565
566 <vl>
567 <dt>disposition-type<dd>disposition-type (symbol).
568 </dd>
569 <dt>parameters<dd>Content-Disposition \e$BMs$N\e(B parameter (\e$BO"A[\e(B list).
570 </dd>
571 </vl>
572 </define>
573
574 <defun name="mime-content-disposition-parameter">
575 <args> content-disposition parameter
576 <p>
577 <var>content-disposition</var> \e$B$N\e(B <var>parameter</var> \e$B$NCM$rJV$9!#\e(B
578 </defun>
579
580 <defun name="mime-content-disposition-filename">
581 <args> content-disposition
582 <p>
583 <var>content-disposition</var> \e$B$N\e(B filename \e$B$NCM$rJV$9!#\e(B
584 </defun>
585
586
587 <h2> Parser for Content-Disposition field
588 <node> Content-Disposition parser
589 <p>
590 <defun name="mime-parse-Content-Disposition">
591             <args> string
592 <p>
593 <var>string</var> \e$B$r\e(B content-disposition \e$B$H$7$F2r@O$7$?7k2L$rJV$9!#\e(B
594 </defun>
595
596 <defun name="mime-read-Content-Disposition">
597 <p>
598 \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
599 <p>
600 Content-Disposition \e$BMs$,B8:_$7$J$$>l9g$O\e(B nil \e$B$rJV$9!#\e(B
601 </defun>
602
603
604 <h1> Encoding Method
605 <node> Content-Transfer-Encoding
606 <p>
607 <concept>Content-Transfer-Encoding \e$BMs\e(B</concept> \e$B$O\e(B entity \e$B$NId9f2=K!$r5-\e(B
608 \e$B=R$9$k$?$a$N$b$N$G$9!#\e(B
609 <p>
610 FLIM \e$B$G$O\e(B Content-Transfer-Encoding \e$BMs$r9=J82r@O$9$k4X?t$rDs6!$7$^$9!#$3\e(B
611 \e$B$l$i$N4X?t$O\e(B Content-Transfer-Encoding \e$BMs$N>pJs$OJ8;zNs$GI=8=$7$^$9!#\e(B
612 <p>
613 \e$B$^$?!"\e(BContent-Transfer-Encoding \e$B$K4p$E$$$FId9f2=!&I|9f2=$r9T$&4X?t$bDs\e(B
614 \e$B6!$5$l$^$9!#\e(B
615
616
617 <h2> Parser
618 <node> Content-Transfer-Encoding parser
619 <p>
620 <defun name="mime-parse-Content-Transfer-Encoding">
621           <args> string
622 <p>
623 <var>string</var> \e$B$r\e(B content-transfer-encoding \e$B$H$7$F2r@O$7$?7k2L$rJV$9!#\e(B
624 </defun>
625
626 <defun name="mime-read-Content-Transfer-Encoding">
627           <opts>default-encoding
628 <p>
629 \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
630 \e$BJV$9!#\e(B
631 <p>
632 Content-Transfer-Encoding \e$BMs$,B8:_$7$J$$>l9g$O\e(B
633 <var>default-encoding</var> \e$B$rJV$9!#\e(B
634 </defun>
635
636
637 <h2> Region encoding/decoding
638 <node> Region encoder/decoder
639 <p>
640 <defun name="mime-encode-region">
641             <args> start end encoding
642 <p>
643 Encode region <var>start</var> to <var>end</var> of current buffer
644 using <var>encoding</var>.
645 </defun>
646
647 <defun name="mime-decode-region">
648             <args> start end encoding
649 <p>
650 Decode region <var>start</var> to <var>end</var> of current buffer
651 using <var>encoding</var>.
652 </defun>
653
654 <defvar name="mime-encoding-method-alist">
655 <p>
656 Alist of encoding vs. corresponding method to encode region.
657 <p>
658 Each element looks like <code>(STRING . FUNCTION)</code> or
659 <code>(STRING . nil)</code>.  <var>string</var> is
660 content-transfer-encoding.  <code>function</code> is region encoder
661 and <code>nil</code> means not to encode.
662 </defvar>
663
664 <defvar name="mime-decoding-method-alist">
665 <p>
666 Alist of encoding vs. corresponding method to decode region.
667 <p>
668 Each element looks like <code>(STRING . FUNCTION)</code> or
669 <code>(STRING . nil)</code>.  <var>string</var> is
670 content-transfer-encoding.  <code>function</code> is region decoder
671 and <code>nil</code> means not to decode.
672 </defvar>
673
674
675 <h2> String encoding/decoding
676 <node> String encoder/decoder
677 <p>
678 <defun name="mime-decode-string">
679               <args> string encoding
680 <p>
681 <var>string</var> \e$B$r\e(B <var>encoding</var> \e$B$H$7$FI|9f$7$?7k2L$rJV$7$^$9!#\e(B
682 </defun>
683
684 <defvar name="mime-string-decoding-method-alist">
685 <p>
686 Alist of encoding vs. corresponding method to decode string.
687 <p>
688 Each element looks like <code>(STRING . FUNCTION)</code>.
689 STRING is content-transfer-encoding.
690 FUNCTION is string decoder.
691 </defvar>
692
693
694 <h2> File encoding/decoding
695 <node> File encoder/decoder
696 <p>
697 <defun name="mime-insert-encoded-file">
698             <args> filename encoding
699 <p>
700 Insert file <var>FILENAME</var> encoded by <var>ENCODING</var> format.
701 </defun>
702
703 <defun name="mime-write-decoded-region">
704               <args> start end filename encoding
705 <p>
706 Decode and write current region encoded by <var>encoding</var> into
707 <var>filename</var>.
708 <p>
709 <var>start</var> and <var>end</var> are buffer positions.
710 </defun>
711
712 <defvar name="mime-file-encoding-method-alist">
713 <p>
714 Alist of encoding vs. corresponding method to insert encoded file.
715 <p>
716 Each element looks like <code>(STRING . FUNCTION)</code>.  STRING is
717 content-transfer-encoding.  FUNCTION is function to insert encoded
718 file.
719 </defvar>
720
721 <defvar name="mime-file-decoding-method-alist">
722 <p>
723 Alist of encoding vs. corresponding method to write decoded region to
724 file.
725 <p>
726 Each element looks like <code>(STRING . FUNCTION)</code>.  STRING is
727 content-transfer-encoding.  FUNCTION is function to write decoded
728 region to file.
729 </defvar>
730
731
732 <h1> Network representation of header
733 <node> encoded-word
734 <p>
735 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
736 \e$B<0$G!"\e(B<concept>RFC 2047</concept> \e$B$GDj5A$5$l$F$$$^$9!#\e(B
737 <p>
738 <rfc number="2047" type="Standards Track" author="K. Moore"
739               title="MIME (Multipurpose Internet Mail Extensions) Part
740               Three: Message Header Extensions for Non-ASCII Text"
741               date="November 1996" obsolete="1521,1522,1590">
742 <p>
743 \e$B$^$?!"9T57$N0-$$$3$H$@$H8@$($^$9$,!"\e(Bencoded-word \e$B$rMQ$$$:$KHs\e(B 
744 <dref>ASCII</dref> \e$BJ8;z$r\e(B header \e$B$KF~$l$?5-;v$bB8:_$7$^$9!#\e(B
745 <p>
746 FLIM \e$B$O$3$l$i$rId9f2=!&I|9f2=$9$k5!G=$rDs6!$7$^$9!#\e(B
747
748
749 <h2> Header encoding/decoding
750 <node> Header encoder/decoder
751 <p>
752 <defun name="eword-encode-header">
753               <opts> code-conversion separator
754 <p>
755 Decode MIME encoded-words in header fields.
756 <p>
757 If <var>code-conversion</var> is <code>nil</code>, it decodes only
758 encoded-words.  If it is mime-charset, it decodes non-ASCII bit
759 patterns as the mime-charset.  Otherwise it decodes non-ASCII bit
760 patterns as the default-mime-charset.
761 <p>
762 If <var>separator</var> is not nil, it is used as header separator.
763 </defun>
764
765 <defun name="eword-encode-header">
766               <opts> code-conversion
767 <p>
768 Encode header fields to network representation, such as MIME
769 encoded-word.
770 <p>
771 It refer variable <code>eword-field-encoding-method-alist</code>.
772 </defun>
773
774
775 <h1> Various Customization
776 <node> custom
777 <p>
778 <define type="group" name="mime">
779 <p>
780 MIME \e$B4XO"5!G=$K4X$9$k\e(B group.
781 <p>
782 <code>mail</code> \e$B$H\e(B <code>news</code> \e$B$KB0$9$k!#\e(B
783 </define>
784
785 <defvar name="default-mime-charset">
786 <p>
787 \e$BE,@Z$J\e(B <dref>MIME charset</dref> \e$B$,8+$D$+$i$J$+$C$?>l9g$KMQ$$$i$l$k\e(B
788 MIME charset.
789 <p>
790 \e$BK\Mh$O\e(B APEL \e$B$NJQ?t$G$"$k!#\e(B
791 </defvar>
792
793 <defvar name="mime-temp-directory">
794 <p>
795 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.
796 <p>
797 \e$B4D6-JQ?t\e(B <code>MIME_TMP_DIR</code>, <code>TM_TMP_DIR</code>,
798 <code>TMPDIR</code>, <code>TMP</code> \e$B$b$7$/$O\e(B <code>TEMP</code> \e$B$,@_Dj\e(B
799 \e$B$5$l$F$$$?>l9g!"$=$l$r=i4|CM$H$7$FMQ$$$k!#2?$b@_Dj$5$l$F$$$J$$>l9g!"\e(B
800 <code>"/tmp/"</code> \e$B$rMQ$$$k!#\e(B
801 </defvar>
802
803
804 <h1> Appendix
805 <node> Appendix
806
807 <h2> Glossary
808 <node> Glossary
809
810 <h3> 7bit
811 <node> 7bit
812 <p>
813 <concept>7bit</concept> means any integer between 0 .. 127.
814 <p>
815 Any data represented by 7bit integers is called <concept>7bit
816 data</concept>.
817 <p>
818 Textual string consisted of Control characters between 0 .. 31 and
819 127, and space represented by 32, and graphic characters between 33
820 .. 236 are called <concept>7bit (textual) string</concept>.
821 <p>
822 Conventional Internet <a node="MTA">MTA</a> can translate 7bit data,
823 so it is no need to translate by <a
824 node="Quoted-Printable">Quoted-Printable</a> or <a
825 node="Base64">Base64</a> for 7bit data.
826 <p>
827 However if there are too long lines, it can not translate by 7bit MTA
828 even if it is 7bit data.  <dref>RFC 821</dref> and <dref>RFC
829 2045</dref> require lines in 7bit data must be less than 998 bytes.
830 So if a ``7bit data'' has a line more than 999 bytes, it is regarded
831 as <dref>binary</dref>.  For example, Postscript file should be
832 encoded by Quoted-Printable.
833
834
835 <h3> 8bit
836 <node> 8bit
837 <p>
838 <concept>8bit</concept> means any integer between 0 .. 255.
839 <p>
840 Any data represented by 8bit integers is called <concept>8bit
841 data</concept>.
842 <p>
843 Textual string consisted of Control characters between 0 .. 31, 127,
844 and 128 .. 159, and space represented by 32, and graphic characters
845 between 33 .. 236 and 160 .. 255 are called <concept>8bit (textual)
846 string</concept>.
847 <p>
848 For example, <dref>iso-8859-1</dref> or <dref>euc-kr</dref> are
849 coded-character-set represented by 8bit textual string.
850 <p>
851 Traditional Internet <a node="MTA">MTA</a> can translate only
852 <dref>7bit</dref> data, so if a 8bit data will be translated such MTA,
853 it must be encoded by <dref>Quoted-Printable</dref> or
854 <dref>Base64</dref>.
855 <p>
856 However 8bit MTA are increasing today.
857 <p>
858 However if there are too long lines, it can not translate by 8bit MTA
859 even if it is 8bit data.  <dref>RFC 2045</dref> require lines in 8bit
860 data must be less than 998 bytes.  So if a ``8bit data'' has a line
861 more than 999 bytes, it is regarded as <dref>binary</dref>, so it must
862 be encoded by Base64 or Quoted-Printable.
863
864
865 <h3> ASCII
866 <node> ASCII
867 <p>
868 <concept>ASCII</concept> is a 94-character set contains primary latin
869 characters (A-Z, a-z), numbers and some characters.  It is a standard
870 of the United States of America.  It is a variant of <a node="ISO
871 646">ISO 646</a>.
872
873 <standard abbrev="ASCII" title-en="Coded Character Set -- 7-Bit
874               American Standard Code for Information Interchange"
875               number="ANSI X3.4" year="1986">
876
877
878 <h3> Base64
879 <node> Base64
880 <p>
881 <concept>Base64</concept> is a transfer encoding method of
882 <dref>MIME</dref> defined in <dref>RFC 2045</dref>.
883 <p>
884 The encoding process represents 24-bit groups of input bits as output
885 strings of 4 encoded characters.  Encoded characters represent integer
886 0 .. 63 or <concept>pad</concept>.  Base64 data must be 4 * n bytes,
887 so pad is used to adjust size.
888 <p>
889 These 65 characters are subset of all versions of ISO 646, including
890 US-ASCII, and all versions of EBCDIC.  So it is safe even if it is
891 translated by non-Internet gateways.
892
893
894 <h3> binary
895 <node> binary
896 <p>
897 Any byte stream is called <concept>binary</concept>.
898 <p>
899 It does not require structureof lines.  It differs from from <a
900 node="8bit">8bit</a>.
901 <p>
902 In addition, if line structured data contain too long line (more than
903 998 bytes), it is regarded as binary.
904
905
906 <h3> Coded character set, Character code
907 <node> coded character set
908 <p>
909 A set of unambiguous rules that establishes a character set and the
910 one-to-one relationship between the characters of the set and their
911 bit combinations.
912
913
914 <h3> media-type
915 <node> media-type
916 <p>
917 <concept>media-type</concept> specifies the nature of the data in the
918 body of <dref>MIME</dref> <dref>entity</dref>.  It consists of
919 <concept>type</concept> and <concept>subtype</concept>.  It is defined
920 in <dref>RFC 2046</dref>.
921 <p>
922 Currently there are following standard primary-types:
923
924 <ul>
925 <li><concept>text</concept>
926 </li>
927 <li><concept>image</concept>
928 </li>
929 <li><concept>audio</concept>
930 </li>
931 <li><concept>video</concept>
932 </li>
933 <li><concept>application</concept>
934 </li>
935 <li><a node="multipart"><concept>multipart</concept></a>
936 </li>
937 <li><concept>message</concept>
938 </ul>
939
940 <p>
941 And there are various subtypes, for example, application/octet-stream,
942 audio/basic, image/jpeg, <dref>multipart/mixed</dref>,
943 <dref>text/plain</dref>, video/mpeg...
944
945 <p>
946 You can refer registered media types at <a
947 href="ftp://ftp.isi.edu/in-notes/iana/assignments/media-types">MEDIA
948 TYPES</a>.
949 <p>
950 In addition, you can use private type or subtype using
951 <concept>x-token</concept>, which as the prefix `x-'.  However you can
952 not use them in public.
953 <p>
954 <cf node="Content-Type field">
955
956
957 <h3> message
958 <node> message
959 <p>
960 In this document, it means mail defined in <dref>RFC 822</dref> and
961 news message defined in <dref>RFC 1036</dref>.
962
963
964 <h3> MIME
965 <node> MIME
966 <p>
967 MIME stands for <concept>Multipurpose Internet Mail
968 Extensions</concept>, it is an extension for <dref>RFC 822</dref>.
969 <p>
970 According to RFC 2045:
971 <p>
972 STD 11, RFC 822, defines a message representation protocol specifying
973 considerable detail about US-ASCII message headers, and leaves the
974 message content, or message body, as flat US-ASCII text.  This set of
975 documents, collectively called the Multipurpose Internet Mail
976 Extensions, or MIME, redefines the format of messages to allow for
977
978 <ol>
979 <li>textual message bodies in character sets other than US-ASCII,
980 </li>
981 <li>an extensible set of different formats for non-textual message
982 bodies,
983 </li>
984 <li>multi-part message bodies, and
985 </li>
986 <li>textual header information in character sets other than US-ASCII.
987 </ol>
988
989 <p>
990 It is defined in <dref>RFC 2045</dref>, <dref>RFC 2046</dref>, <a
991 node="encoded-word">RFC 2047</a>, <dref>RFC 2048</dref> and <dref>RFC
992 2049</dref>.
993
994
995 <h3> MIME charset
996 <node> MIME charset
997 <p>
998 <a node="coded character set">Coded character set</a> used in
999 <dref>Content-Type field</dref> or charset parameter of <a
1000 node="encoded-word">encoded-word</a>.
1001 <p>
1002 It is defined in <dref>RFC 2045</dref>.
1003 <p>
1004 <dref>iso-2022-jp</dref> or <dref>euc-kr</dref> are kinds of it.  (In
1005 this document, MIME charsets are written by small letters to
1006 distinguish <dref>graphic character set</dref>.  For example, ISO
1007 8859-1 is a graphic character set, and iso-8859-1 is a MIME charset)
1008
1009
1010 <h3> MTA
1011 <node> MTA
1012 <p>
1013 <concept>Message Transfer Agent</concept>.  It means mail transfer
1014 programs (ex. sendmail) and news servers.
1015 <p>
1016 <cf node="MUA">
1017
1018
1019 <h3> MUA
1020 <node> MUA
1021 <p>
1022 <concept>Message User Agent</concept>.  It means mail readers and news
1023 readers.
1024 <p>
1025 <cf node="MTA">
1026
1027
1028 <h3> Quoted-Printable
1029 <node> Quoted-Printable
1030 <p>
1031 <concept>Quoted-Printable</concept> is a transfer encoding method of
1032 <dref>MIME</dref> defined in <dref>RFC 2045</dref>.
1033 <p>
1034 If the data being encoded are mostly US-ASCII text, the encoded form
1035 of the data remains largely recognizable by humans.
1036 <p>
1037 <cf node="Base64">
1038
1039
1040 <h3> RFC 822
1041 <node> RFC 822
1042 <p>
1043 A RFC defines format of Internet mail message, mainly <concept>message
1044 header</concept>.
1045
1046 <memo>
1047 <p>
1048 news message is based on RFC 822, so <concept>Internet
1049 message</concept> may be more suitable than <concept>Internet
1050 mail</concept> .
1051 </memo>
1052
1053 <rfc number="822" type="STD 11" author="D. Crocker" title="Standard
1054               for the Format of ARPA Internet Text Messages"
1055               date="August 1982">
1056
1057
1058 <h3> RFC 1036
1059 <node> RFC 1036
1060 <p>
1061 A RFC defines format of USENET message.  It is a subset of <dref>RFC
1062 822</dref>.  It is not Internet standard, but a lot of netnews
1063 excepting Usenet uses it.
1064
1065 <rfc name="USENET" number="1036" author="M. Horton and R. Adams"
1066               title="Standard for Interchange of USENET Messages"
1067               date="December 1987" obsolete="850">
1068
1069
1070 <h3> RFC 2045
1071 <node> RFC 2045
1072 <p>
1073 <rfc number="2045" type="Standards Track" author="N. Freed and
1074               N. Borenstein" title="Multipurpose Internet Mail
1075               Extensions (MIME) Part One: Format of Internet Message
1076               Bodies" date="November 1996" obsolete="1521, 1522,
1077               1590">
1078
1079
1080 <h3> RFC 2046
1081 <node> RFC 2046
1082 <p>
1083 <rfc number="2046" type="Standards Track" author="N. Freed and
1084               N. Borenstein" title="Multipurpose Internet Mail
1085                  Extensions (MIME) Part Two: Media Types"
1086                  date="November 1996" obsolete="1521, 1522, 1590">
1087
1088
1089 <h3> RFC 2048
1090 <node> RFC 2048
1091 <p>
1092 <rfc number="2048" type="Standards Track" author="N. Freed, J. Klensin
1093               and J. Postel" title="Multipurpose Internet Mail
1094               Extensions (MIME) Part Four: Registration Procedures"
1095               date="November 1996" obsolete="1521, 1522, 1590">
1096
1097
1098 <h3> RFC 2049
1099 <node> RFC 2049
1100 <p>
1101 <rfc number="2049" type="Standards Track" author="N. Freed and
1102               N. Borenstein" title="Multipurpose Internet Mail
1103               Extensions (MIME) Part Five: Conformance Criteria and
1104               Examples" date="November 1996" obsolete="1521, 1522,
1105               1590">
1106
1107
1108 <h3> plain text
1109 <node> plain text
1110 <p>
1111 A textual data represented by only <dref>coded character set</dref>.
1112 It does not have information about font or typesetting.
1113 <cf node="text/plain">
1114
1115
1116 <h3> us-ascii
1117 <node> us-ascii
1118 <p>
1119 A <a node="MIME charset">MIME charset</a> for primary Latin script
1120 mainly written by English or other languages.
1121 <p>
1122 It is a 7bit <dref>coded character set</dref> based on <dref>ISO
1123 2022</dref>, it contains only
1124 <dref>ASCII</dref> and <dref>code extension</dref> is not allowed.
1125 <p>
1126 It is standard coded character set of Internet mail.  If MIME charset
1127 is not specified, <concept>us-ascii</concept> is used as default.
1128 <p>
1129 In addition, <concept>ASCII</concept> of <dref>RFC 822</dref> should
1130 be interpreted as us-ascii.
1131
1132
1133 <h2> How to report bugs
1134 <node> Bug report
1135 <p>
1136 If you write bug-reports and/or suggestions for improvement, please
1137 send them to the tm Mailing List:
1138
1139 <ul>
1140 <li> Japanese <mail>bug-tm-ja@chamonix.jaist.ac.jp</mail>
1141 <li> English <mail>bug-tm-en@chamonix.jaist.ac.jp</mail>
1142 </ul>
1143
1144 <p>
1145 Notice that, we do not welcome bug reports about too old version.
1146 Bugs in old version might be fixed.  So please try latest version at
1147 first.
1148 <p>
1149 You should write <concept>good bug report</concept>.  If you write
1150 only ``FLIM does not work'', we can not find such situations.  At
1151 least, you should write name, type, variants and version of OS, emacs,
1152 APEL, FLIM, SEMI and MUA, and setting.  In addition, if error occurs,
1153 to send backtrace is very important. <cf file="emacs" node="Bugs">
1154 <p>
1155 Bug may not appear only your environment, but also in a lot of
1156 environment (otherwise it might not bug).  Therefor if you send mail
1157 to author directly, we must write a lot of mails.  So please send mail
1158 to address for tm bugs instead of author.
1159
1160 <p>
1161 Via the tm ML, you can report FLIM bugs, obtain the latest release of
1162 FLIM, and discuss future enhancements to FLIM.  To join the tm ML,
1163 send empty e-mail to:
1164
1165 <ul>
1166 <li> Japanese <mail>tm-ja-help@chamonix.jaist.ac.jp</mail>
1167 <li> English  <mail>tm-en-help@chamonix.jaist.ac.jp</mail>
1168 </ul>
1169
1170
1171 <h2> CVS based development
1172 <node> CVS
1173 <p>
1174 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
1175 \e$B?7$N\e(B FLIM \e$B$rF~<j$9$k$3$H$,$G$-$^$9!'\e(B
1176
1177 <verb>
1178 (0) cvs login
1179
1180     % cvs -d :pserver:anonymous@chamonix.jaist.ac.jp:/hare/cvs/root \
1181         login
1182
1183     CVS password: [CR] # NULL string
1184
1185 (1) checkout
1186
1187     % cvs -d :pserver:anonymous@chamonix.jaist.ac.jp:/hare/cvs/root \
1188         checkout [-r TAG] flim
1189 </verb>
1190
1191 <p>
1192 CVS \e$B$rMQ$$$?3+H/$K;22C$7$?$$J}$O\e(B
1193
1194 <ul>
1195 <li> <mail>cvs@chamonix.jaist.ac.jp</mail>
1196 </ul>
1197
1198 <noindent>
1199 \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
1200 \e$B$r1h$($F8fO"Mm$/$@$5$$!#\e(B
1201
1202
1203 <h2> History of FLIM
1204 <node> History
1205 <p>
1206 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>
1207 \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 
1208 B-encoding \e$B@lMQ$N\e(B encoded-word \e$B$NI|9f2=%W%m%0%i%`$G$7$?!#\e(B
1209 <p>
1210 \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
1211 <file>tiny-mime.el</file> \e$B$H$$$&%W%m%0%i%`$r=q$-$^$9!#$3$l$O!"\e(BNemacs 
1212 \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
1213 <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
1214 support \e$B$7!"$^$?!"\e(BMULE \e$B$G07$&$3$H$,$G$-$k$5$^$6$^$J\e(B <dref>MIME
1215 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
1216 \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
1217 \e$B$a$i$l$^$9!#\e(B
1218 <p>
1219 \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
1220 \e$B$?$a$N@_Dj=8$bG[I[$7$F$$$^$7$?$,!"$=$l$i$O8e$K\e(B
1221 <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
1222 \e$B$&L>A0$GG[I[$5$l$^$9!#\e(B
1223 <p>
1224 \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
1225 <file>tm-body.el</file> \e$B$r=q$-$^$9!#$3$l$O!"$9$0$K\e(B
1226 <file>tm-view.el</file> \e$B$H$$$&L>A0$KJQ$o$j$^$7$?$,!"$d$,$F!"$3$l$,\e(B
1227 <file>tiny-mime.el</file> \e$B$KBe$o$C$F!"\e(Btm \e$B$NCf3K$H$J$j$^$9!#\e(B
1228 <p>
1229 <file>tm-view.el</file> \e$B$OEvA3!"\e(BContent-Transfer-Encoding \e$B$r07$&I,MW$,\e(B
1230 \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
1231 \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
1232 Quoted-Printable \e$B$N\e(B code \e$B$,DI2C$5$l$^$7$?!#$3$l$i$,\e(B
1233 <file>mel-b.el</file> \e$B$H\e(B <file>mel-q.el</file> \e$B$K$J$j$^$7$?!#\e(B
1234 <p>
1235 \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
1236 \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
1237 <file>mel-g.el</file> \e$B$,DI2C$5$l$^$7$?!#\e(B
1238 <p>
1239 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
1240 \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 
1241 <file>std11.el</file> \e$B$KEv$?$j$^$9!#$^$?!"$3$N2aDx$G\e(B 
1242 <file>tiny-mime.el</file> \e$B$OI|9f2=$r9T$&\e(B <file>tm-ew-d.el</file> \e$B$HId\e(B
1243 \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 
1244 <file>eword-decode.el</file> \e$B$H\e(B <file>eword-encode.el</file> \e$B$N@hAD$K\e(B
1245 \e$BEv$?$j$^$9!#\e(B
1246 <p>
1247 \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
1248 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
1249 \e$B$3$N$&$A$N\e(B MEL \e$B$,\e(B FLIM \e$B$ND>@\$N@hAD$KEv$?$j$^$9!#\e(B
1250 <p>
1251 \e$B8e$K!"\e(BAPEL \e$B$+$i\e(B <file>std11.el</file> \e$B$,0\$5$l!"$^$?!"\e(B
1252 <file>mailcap.el</file>, <file>eword-decode.el</file> \e$B$*$h$S\e(B 
1253 <file>eword-encode.el</file> \e$B$,\e(B SEMI \e$B$+$i0\$5$l!"\e(Bpackage \e$B$NL>A0$,\e(B FLIM
1254 \e$B$H$J$j$^$9!#\e(B
1255 <p>
1256 \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
1257 FLIM \e$B$N;^$G$"$k\e(B ``FLIM-FLAM'' \e$B$H$J$C$F$$$^$9!#\e(B
1258
1259
1260 <h1> Concept Index
1261 <node> Concept Index
1262
1263 <cindex>
1264
1265
1266 <h1> Function Index
1267 <node> Function Index
1268
1269 <findex>
1270
1271
1272 <h1> Variable Index
1273 <node> Variable Index
1274
1275 <vindex>
1276
1277 </body>