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