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