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