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